python入门:元组和字典

有了列表的知识,元组和字典就相对比较容易理解了。本期结尾还有一个小小的思考题,有想法的同学可以在公众号后台与聪哥互动交流。

元组

元组对应的英文单词是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命令行尝试创建这几种变量,并且对它们做增删改的操作。

总结

  1. 元组是不能修改的列表,安全性较好
  2. 字典可以看作是自定义键值的列表
  3. 字典的键值不能重复,键值也不能改变
  4. 通过键值可以访问字典,以及对字典内的数据进行修改

思考

# 下面三个字典中的第一个元素分别是什么,应该如何表示它们。

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基础教程

聪哥python

你可能感兴趣的:(python入门:元组和字典)