有了列表的知识,元组和字典就相对比较容易理解了。本期结尾还有一个小小的思考题,有想法的同学可以在公众号后台与聪哥互动交流。
元组
元组对应的英文单词是tuple,它可以理解为:一旦创建,就不能修改的列表。因此,除了不支持增删改的操作,其它的列表性质,元组都有。
元组的创建和列表基本相同。由于元组不能修改,一般不会创建空的元组。
>>> points = (87, 91, 64, 75, 94)
>>> fruits = ('apple', 'banana', 'grape', 'orange', 'pear')
>>> scores = (
('Chinese', 90),
('Mathematics', 85),
('English', 93)
)
如果元组内只有一个元素,必须要加上一个逗号,否则python的解释器不会认为它是元组。
>>> tup = (1)
>>> type(tup)
>>> tup = (1,)
>>> type(tup)
元组不能被修改,使用起来肯定有所不便,为什么我们不用更加方便的列表呢?其实,不能修改从某种意义上来说,也是一种优势,因为它使得数据更有安全性。所以在传输数据的时候,我们更倾向于使用元组。
元组的表示和列表完全一样,具体请看下图示例。
>>> print(fruits)
('apple', 'banana', 'grape', 'orange', 'pear')
>>> print(fruits[0],fruits[-1])
apple pear
>>> print(fruits[0:2])
['apple', 'banana']
用+
可以连接两个元组,通过赋值符号=
可以生成一个新的元组。*
符号也有类似的操作。
>>> fruits = ('apple', 'banana', 'grape', 'orange', 'pear')
>>> vagetables = ('cabbage', 'carrot', 'lettuce', 'pumpkin', 'tomato')
>>> food = fruits + vagetables
>>> print(food)
('apple', 'banana', 'grape', 'orange', 'pear',
'cabbage', 'carrot', 'lettuce', 'pumpkin', 'tomato')
>>> print(fruits * 2)
('apple', 'banana', 'grape', 'orange', 'pear',
'apple', 'banana', 'grape', 'orange', 'pear')
字典
字典的英文是dictionary。上一篇我们讲到,可以使用“变量名+中括号+序号”的方式来表示列表中的元素。而字典是一种特殊的列表,它不用序号,而使用键值。这个键值,相当于是字典元素的一个名字。下面给出了三个字典示例,请大家观察其特征,是不是和列表很相似?
>>> points = { 0:87, 1:91, 2:64, 3:75, 4:94 }
>>> fruits = {
0: 'apple', 1:'banana',
2:'grape', 3:'orange',
4:'pear'
}
>>> scores = {
'Chinese': 90,
'Mathematics': 85,
'English': 93
}
由于计算机不允许两个元素的键值相同,我们必须保证每个元素都有一个独一无二的键值,否则字典会创建失败。
根据列表的元素表示方法,我们可以推知:字典中的元素可以使用“变量名+中括号+键值”来表示。
>>> print(points[3])
75
>>> print(fruits[1])
apple
>>> print(scores['English'])
93
字典中的元素的也可以增加,修改和删除。具体的实现方法和列表类似,具体请参考上一篇文章《python的列表》。下图给出了示例:
>>> print(fruits)
{ 0:'apple', 1:'banana', 2:'grape', 3:'orange', 4:'pear' }
>>> fruits[1] = 'peach'
>>> print(fruits)
{ 0:'apple', 1:'peach', 2:'grape', 3:'orange', 4:'pear' }
>>> fruits[5] = 'pineapple'
>>> print(fruits)
{ 0:'apple', 1:'peach', 2:'grape', 3:'orange', 4:'pear', 5:'pineapple' }
>>> del fruits[5]
>>> print(fruits)
{ 0:'apple', 1:'peach', 2:'grape', 3:'orange', 4:'pear' }
值得注意的是:字典不支持用+
实现连接操作,也不支持*
实现重复的操作。
自此,python的变量,我们就全部讲完了,大家可以打开python命令行尝试创建这几种变量,并且对它们做增删改的操作。
总结
- 元组是不能修改的列表,安全性较好
- 字典可以看作是自定义键值的列表
- 字典的键值不能重复,键值也不能改变
- 通过键值可以访问字典,以及对字典内的数据进行修改
思考
下面三个字典中的第一个元素分别是什么,应该如何表示它们。(答案下期公布)
# 问题
# 下面三个字典中的第一个元素分别是什么,应该如何表示它们。
points_1 = { 0:87, 1:91, 2:64, 3:75, 4:94 }
points_2 = { 0:'87', 1:'91', 2:'64', 3:'75', 4:'94' }
points_3 = { '0':87, '1':91, '2':64, '3':75, '4':94 }
# 答案
# 87, '87', 87
# points_1[0], points_2[0], points_3['0']
扫一扫这个二维码,关注公众号:聪哥python,获取最新python3基础教程