python元组和字典的简单学习
程序员文章站
2022-07-05 15:38:25
元组(tuple) 用圆括号()标识,定义元组后,元组元素不可修改。如果想修改元组只能重新定义元组。 因为元组不可更改,所以也没有增删改等用法,主要语法就是访问元组元素,遍历元组。 访问元组元素: 输出结果: 遍历元组: 用while循环遍历: 输出结果: 用for循环遍历: 字典(dictiona ......
元组(tuple)
用圆括号()标识,定义元组后,元组元素不可修改。如果想修改元组只能重新定义元组。
因为元组不可更改,所以也没有增删改等用法,主要语法就是访问元组元素,遍历元组。
访问元组元素:
1 tuple1 = (1, 2, 3, 4) 2 print(tuple1) 3 print(tuple1[0]) # 虽然元组是用(),但是当使用索引时还是使用tuple[]。
输出结果:
(1, 2, 3, 4) 1
遍历元组:
用while循环遍历:
1 index = 0 2 while index < len(tuple1): 3 print(tuple1[index]) 4 index += 1
输出结果:
1 2 3 4
用for循环遍历:
1 tuple1 = (1, 2, 3, 4) 2 for i in tuple1: 3 print(i)
字典(dictionary)
是一系列键值对,包括在花括号内({}),每个对之间用逗号隔开,键必须是唯一的,值则不必。
字典的增删查改:
(1)添加键值对
1 dic_people = {'name': 'abc', 'color': 'yellow'} 2 print(dic_people) 3 4 dic_people['old'] = 18 # 添加键 5 dic_people['language'] = 'english' # 添加值 6 7 print(dic_people)
输出结果:
{'name': 'abc', 'color': 'yellow'} {'name': 'abc', 'color': 'yellow', 'old': 18, 'language': 'english'}
(2)删除键值对
1 dic_people = {'name': 'abc', 'color': 'yellow', 'old': 18, 'language': 'english'} 2 print(dic_people) 3 4 del dic_people['language'] # 字典使用del语句删除一对键值对 5 6 print(dic_people)
输出结果:
{'name': 'abc', 'color': 'yellow', 'old': 18, 'language': 'english'} {'name': 'abc', 'color': 'yellow', 'old': 18}
(3)查询字典
1 dic_people = {'name': 'abc', 'color': 'yellow', 'old': 18, 'language': 'english'} 2 print(dic_people) 3 # print(dic_people[0]) # 字典不能通过索引小标来访问 4 print(dic_people['old']) 5 # print(dic_people[18]) # 只能通过键值查询key值,不能通过key值查询
输出结果:
{'name': 'abc', 'color': 'yellow', 'old': 18, 'language': 'english'} 18
(4)修改字典
1 dic_people = {'name': 'abc', 'color': 'yellow', 'old': 18, 'language': 'english'} 2 print(dic_people) 3 4 dic_people['old'] = 20 5 print(dic_people)
输出结果:
{'name': 'abc', 'color': 'yellow', 'old': 18, 'language': 'english'} {'name': 'abc', 'color': 'yellow', 'old': 20, 'language': 'english'}
遍历字典
(1)遍历所有的键值对
使用dic.items()
1 dic_people = {'name': 'abc', 'color': 'yellow', 'old': 18, 'language': 'english'} 2 3 for key,value in dic_people.items(): 4 # print(key1, value1) 5 # print(key1 + ':'+ value1) # 注意:使用加号(+)会出错,因为dic_people中old的值是int型 6 print(key, ':', value)
输出结果:
name : abc color : yellow old : 18 language : english
(2)遍历所有的键值
使用dic.keys()
1 dic_people = {'name': 'abc', 'color': 'yellow', 'old': 18, 'language': 'english'} 2 3 for key in dic_people.keys(): 4 print(key)
输出结果:
name color old language
(3)遍历所有的value值
使用dic.values()
1 dic_people = {'name': 'abc', 'color': 'yellow', 'old': 20, 'language': 'english', 'length': 18} 2 for value in dic_people.values(): 3 print(value)
输出结果:
abc yellow 18 english 18
从上面的示例可以看到输出结果中有重复项,如果我们不想要重复项怎么办?可以使用set(dic.values())
1 dic_people = {'name': 'abc', 'color': 'yellow', 'old': 18, 'language': 'english', 'length': 18} 2 3 for value in set(dic_people.values()): # 去掉重复项 4 print(value)
输出结果:
english 18 abc yellow
从上面的几个实例可以看出都是for循环加上字典调用函数实现遍历相应的值,那么不调用函数可以for循环遍历吗?
1 dic_people = {'name': 'abc', 'color': 'yellow', 'old': 18, 'language': 'english'} 2 for key in dic_people: 3 print(key)
输出结果:
name color old language
可以看出不调用函数的结果是遍历key值,为什么会这样呢?这就涉及到for循环的本质了,在后面的迭代器中会讲的for循环的本质是什么。
推荐阅读