字典

字典

#创建字典
info = {
    'stu01': 'zhangsan',
    'stu02': 'lisi',
    'stu03': 'wangwu'
}
#字典生成式(字典生成式可以通过一行代码快速生成一个字典,其语法如下:)
result = {key: value for item in iterable}
result:生成的新字典。
key:生成的键。
value:生成的值。
item:从可迭代对象中取出的元素。
iterable:可迭代对象。
下面的例子会创建一个 key 是迭代元素,value 是迭代元素数值平方的字典。
传统写法
a = {}for i in range(1,10):
    a[i] = i*i   # 将 i*i 对应指定的键
print(a)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
使用字典生成式
a = {i:i*i for i in range(1,10)}
print(a)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

#增加或者更改
info['stu04'] = 'zhaoliu'
info.setdefault('stu01','www.baidu.com') #有指定的key就不做写入,没有就将后面的内容作为值,对应写入字典
#删除
info.pop('stu04')
#查找
print(info.get('stu01'))
print(info.get('stu09'))
# print(info['stu09']) #不推荐这么用,因为如果没有回出错
#打印所有的key
print(info.keys())
#打印所有的值
print(info.values())
#统计字典中有多少项
print(len(info))
print(len(info.keys()))
print(len(info.values()))
#将两个字典合并,有重复的key就覆盖
info1 = {
    'stu01': 'new',
    1:11,
    2:22,
    3:33
}
print(info.update(info1))
#初始化一个新字典,相当于浅复制的效果,这一点要注意
info3 = dict.fromkeys(['key1','key2','key3'],'init_value') #相当于将init_value复制一份给每个key
print(info3)
info3['key1'] = 'change'
print(info3)
info4 = dict.fromkeys(['key1','key2','key3'],['test1','test2']) #相当于把['test1','test2']这个列表的地址作为值,赋值给每个key
print(info4)
info4['key1'][0] = 'change'
print(info4)
#将一个字典转成列表
print(info.items())
#字典的循环
for key in info: #强烈推荐
    print(key,info[key])
for k,v in info.items(): #不推荐,因为这个方法需要先将字典转换成列表的过程,数据量大的话很耗费资源
    print(k,v)
#清空字典
# info.clear()
print(info)

 

posted @ 2022-09-24 15:07  ZYT666  阅读(38)  评论(0)    收藏  举报