元组和字典
一.元组
1.与列表类似,区别在于:①元组用小括号()定义,②元组的元素不能修改
2.操作:①交换变量的值
②元组的方法 .count() 和 .index()
③元组切片 和列表切片一样
④拆包和装包:拆包的元素,整型、字符串、列表均可;装包时均为列表
1.基础
2.操作
①交换
②元组的方法 .count() 和 .index()
③元组切片
④拆包和装包
二.字典
1.基础
2.数据类型转换
3.增加元素
4.字典新增元素案例
5.取值
6.解封装 item(),values(), keys()
7.删除
1.与列表类似,区别在于:①元组用小括号()定义,②元组的元素不能修改
2.操作:①交换变量的值
②元组的方法 .count() 和 .index()
③元组切片 和列表切片一样
④拆包和装包:拆包的元素,整型、字符串、列表均可;装包时均为列表
1.基础
[Python] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
|
# listnum_list = [1, 2, 3, "4"]# 元组 - tuple 与列表类似# 区别:1.元组的元素不能修改 2.用()定义tuple1 = () # 空元组tuple2 = tuple() # 空元组info_tuple = ("张三", 20, 1.75)print(type(tuple1), type(tuple2), type(info_tuple))tuple3 = ("Alex") # 不是元组,而是一个字符串,()表示调整优先级print(type(tuple3))tuple4 = ("Alex",) # 表示元组只有一个元素 |
[Python] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
# 元组元素不可变# 需求:获得一个元组10个元素,每个元组都是1-10的随机数import randomlist1 = []for i in range(10): rand = random.randint(1,20) list1.append(rand)print(list1, len(list1))# 列表 转换成 元组,列表和元组可以互相转换tuple1 = tuple(list1) # list1 = list(tuple1)print(tuple1) |
2.操作
①交换
[Python] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
# 交换变量a = 1b = 2# 法 1:c = aa = bb = c# 法 2:a = a + bb = a - ba = a - b# 法 3:# (b, a) = (a, b) # 括号可以去掉b, a = a, bprint(a, b) |
②元组的方法 .count() 和 .index()
[Python] 纯文本查看 复制代码
|
1
2
3
4
5
6
|
# 元组中的方法 index() 和 count()# index() 值->索引# print(tuple1.index(1))# count() 统计某个元素在元组中出现的次数print(tuple1.count(2)) |
③元组切片
[Python] 纯文本查看 复制代码
|
1
2
|
# 通过元组切片 查看元素print(tuple1[5:]) |
④拆包和装包
[Python] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
|
# 整型 -> 列表t1 = (2, 5, 6, 7, 9, 6, 3)a, *b, c = t1 # *b表示要拆包,它不固定长度print(a)print(*b) # type(*b)没有数据类型print(c)# *b——>b 装包为一个列表# 字符串 ->列表x, y, *z = "hello"print(z)# 列表 -> 列表x, y, *z = ("niao", "mao", 8, 'aa', 'hello')print(z) |
二.字典
1.基础
[Python] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
|
# 字典 dictdict1 = {} # 空字典dict2 = dict() # 空字典print(type(dict1),type(dict2))tom ={ "name": "tom", "age": 18, "height": 180, "weight": 75.0, "name": 'TOM'}# 字典的元素是键值对 key: value# 键是唯一的,键必须是数字、字符或元组,值可以是任意类型# 字典是无序的,索引就是键# 字典的键必须是唯一的,如果定义字典的时候,有相同键的 键值对,则会保留 后面的 键值对print(tom)# 通过键取值print(tom['age']) |
2.数据类型转换
[Python] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
# 列表 元组 字典 ————>字典t1 = ("name", "tom") # 不能转成字典list1 =[("name", "tom"), ("age", 18)] # 推荐:列表内元组转字典,里面的元组不会变,外面可以灵活d1 = dict(list1) # [(a,b),(c,d)] a 和 c必须是数字、字符串或元组print(d1)t2 = (("name", "tom"), ("age", 18)) # 过于不灵活:元组内元组 转字典d2 = dict(t2)print(d2)t3 = (["name", "tom"], ["age", 18]) # 元组内列表d3 = dict(t3)print(d3)l4 = [["name","tom"],["age",18]]d4 = dict(l4)print(d4) |
3.增加元素
[Python] 纯文本查看 复制代码
|
1
2
3
4
5
6
7
|
# 增:定义一个字典,通过增加键值对的形式,增加值dict1 = {}dict1["device_type"] = "cisco"print(dict1)# 改:对索引重新赋值dict1["device_type"] = "huawei"print(dict1) |
4.字典新增元素案例
[Python] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# 用户注册功能# 填写 username,password,email,phone 完成注册data_base =[]while True: user_dict = {} user_dict['username'] = input("请输入用户名:") user_dict['password'] = input("请输入密码:") re_passwd = input("请再次输入密码") if re_passwd != user_dict['password']: print("两次输入的密码不一致,请重新输入!") continue user_dict['email'] = input("请输入邮箱:") user_dict['phone'] = input("请输入手机号码:") data_base.append(user_dict) ask = input("是否继续注册?(Y/N)") if ask.upper() =="N": print("程序退出!") breakprint(data_base) |
5.取值
[Python] 纯文本查看 复制代码
|
1
2
3
4
5
6
7
|
dict1 = {"张三": 100,"李四": 100,"王五": 95,"老六": 88}# 根据字典的键取值print(dict1["张三"])for i in dict1: # i只是字典的键 if dict1[i] > 90: print(i) |
6.解封装 item(),values(), keys()
[Python] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# items() values() keys()dict1 = {"张三": 100,"李四": 100,"王五": 95,"老六": 88}result1 = dict1.items()print(result1)print(type(result1))# items 类型可以转成列表, 与字典转列表不一样list1 = list(result1) # 键和列表都留下print(list1)list2 = list(dict1) # 只留下键print(list2)# values 只留下值result2 = dict1.values()print(type(result2))print(result2)list3 = list(result2)print(list3)# keys 只留下键result3 = dict1.keys()print(result3)list4 = list(result3)print(list4) |
7.删除
[Python] 纯文本查看 复制代码
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
|
# del 关键字dict1 = {"张三": 100, "李四": 100, "王五": 95," 老六": 88}del dict1['张三']print(dict1)# 也可以删整个字典# del dict1# pop() 要给键值才能删dict1.pop("李四")print(dict1)var = dict1.pop("张三", "这个键不存在") # 只是不会报错,这句话并不会显现print(dict1) # 要想显现,用 var接收print(var)# popitem 删字典键值对,后进先出var1 = dict1.popitem()print(dict1)print(var1) |

浙公网安备 33010602011771号