美文网首页
python入门:元组和字典

python入门:元组和字典

作者: 天涯待归客 | 来源:发表于2017-05-19 10:49 被阅读35次

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

    元组

    元组对应的英文单词是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)
    <class 'int'>
    >>> tup = (1,)
    >>> type(tup)
    <class 'tuple'>
    
    

    元组不能被修改,使用起来肯定有所不便,为什么我们不用更加方便的列表呢?其实,不能修改从某种意义上来说,也是一种优势,因为它使得数据更有安全性。所以在传输数据的时候,我们更倾向于使用元组。

    元组的表示和列表完全一样,具体请看下图示例。

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

    聪哥python

    相关文章

      网友评论

          本文标题:python入门:元组和字典

          本文链接:https://www.haomeiwen.com/subject/sofyxxtx.html