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

  • 在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的字典的理解)