美文网首页
2018-11-08对python的字典的理解

2018-11-08对python的字典的理解

作者: 流宕的TurnKey | 来源:发表于2018-11-08 23:19 被阅读0次
    • 在python中,可以把相关信息关联起来的容器就是字典
    • 为了更好地模拟现实世界,建模是必须的,字典为建模提供了一个有力的工具
    • 字典是一系列的键-值对,每个键都与一个值相关联,可以使用键来访问相关联的值,值可以是任何python对象
    • 键和值之间用冒号分隔,而键-值对之间用逗号分隔
    • 我在想,键是不是只能是字符串啊
    • 如何获取字典中的值,只需要指定字典名和放在方括号内的键,获取的值还可以储存在某个变量里面
    • 添加键值对就是指定字典名,用方括号括起来的键和相关联的值
    alien_0 = {'colore': "green", "points": 5}
    alien_0["x_position"] = 0  # 添加键值对
    alien_0["y_position"] = 25  # 添加键值对
    print(alien_0)
    
    • 有时候需要创建一个空字典,等待用户来写入数据或者机器自动生成大量键值对
    • 可以使用del语句可以删除字典中的键值对,需要指定字典名和要删除的键
    • 字典可以储存一个对象的多种信息,如某个人的基本信息,也可以储存众多对象的同一种信息,如被调查的一群人关于某个问题的回答
    • 较大的字典可以采取一定的格式放在多行里面,这种格式在其他编程语言里面也很常见
    skin_s8 = {
        'the shy': 'aatrox',
        'ning': 'camille',
        'rookie': 'leblanc',
        'jacklove': 'kaisa',
        'baolan': 'rakan',
        'duke': 'irelia',
        }
    
    • 上面这个列表,注意两点,一个是右花括号最好也缩进四个空格,而且花括号独占一行哦(如果你去观察其他编程语言的习惯,会发现很多语言的代码都是这样的),二是在最后一个键值对后面也加上一个逗号,方便在下一行继续添加键值对

    • 既然可以遍历列表,当然也可以遍历字典,使用for循环可以遍历字典的所有键值对,键或值
    for key, value in skin_s8.items():  # items()方法(复数哦)可以返回一个键值对列表,key和value是两个临时变量,也可以简写成k,v
        print(key.title()+" wants "+value.title()+".")
    # 用方法keys()可以遍历字典中所有键,用方法values()可以遍历字典中所有值
    for key in skin_s8.keys():
        print(key.title())
    
    • 使用for循环遍历字典时会默认遍历所有的键,所以省略方法keys()也可以,但显示地使用方法keys()可以让代码更加容易理解,所以还是不要省略为好
    • 方法keys()实际上是返回一个列表,列表中包含了字典中所有的键
    • 函数sorted()好像可以进行临时排序
    • 方法values()可以提取字典中所有的值,但不考虑重复性,要剔除重复性,就要对字典使用set()函数,set是集合的意思
    • 集合有一个特征就是唯一性,集合中每一个元素都是独一无二的,所以set()函数就是用来创建集合的函数
    • 有时需要把字典储存在列表中,或把列表作为值储存在字典中,就这叫嵌套,嵌套是一个强大的功能
    • 经常需要在列表中储存大量字典,如网站为每一个用户创建一个字典,这些字典储存在users这个列表里面
    • 当需要在字典中将一个键关联到多个值的时候,可以在字典中嵌套一个列表
    • 变量可以代表任何东西,或者说任何东西都可以赋给变量
    • 嵌套的层级不需要太多,一般不超过两层,把问题简单化才是本领(抓要害)
    • 虽然可以在字典里面嵌套字典,就算可以保证每个字典结构相同,但也会让代码复杂起来,并不鼓励这样做

    people_0 = {'name': 'keyoung', 'age': 23, 'hobby': 'badminton'}
    people_1 = {'name': 'laomao', 'age': 24, 'hobby': 'basketball'}
    peoples = [people_0, people_1]
    for people in peoples:
        print(people['name'].title()+"'s age is "+str(people['age'])+" and hobby is "+
              people['hobby']+'.')
    

    相关文章

      网友评论

          本文标题:2018-11-08对python的字典的理解

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