第二周 第12节字典的使用 (字典和列表是最常用的两种数据类型)
字典是key value 的数据类型,是无序的
info={'stu1101':'tenglan','stu1102:':'lonze','stu1103':'xiaoze'}
print(info)
{'stu1101': 'tenglan', 'stu1102:': 'lonze', 'stu1103': 'xiaoze'}
字典是无序的,没有下标,通过key取值
info={'stu1101':'tenglan','stu1102:':'lonze','stu1103':'xiaoze'}
print(info['stu1101'])
取值:tenglan
info={'stu1101':'tenglan','stu1102:':'lonze','stu1103':'xiaoze'}
info['stu1103']='肖泽'
info['stu1104']='xiaoming'
print(info)
如果存在就修改,如果不存在就增加
{'stu1101': 'tenglan', 'stu1102:': 'lonze', 'stu1103': '肖泽', 'stu1104': 'xiaoming'}
删除:
info={'stu1101':'tenglan','stu1102:':'lonze','stu1103':'xiaoze'}
del info['stu1101']
print(info)
{'stu1102:': 'lonze', 'stu1103': 'xiaoze'}
删除2
info={'stu1101':'tenglan','stu1102:':'lonze','stu1103':'xiaoze'}
info.pop('stu1101')
print(info)
随机删除
info={'stu1101':'tenglan','stu1102:':'lonze','stu1103':'xiaoze'}
info.popitem()
print(info)
{'stu1101': 'tenglan', 'stu1102:': 'lonze'}
取数据:
info={'stu1101':'tenglan','stu1102:':'lonze','stu1103':'xiaoze'}
print(info.get('stu1101'))
tenglan
判断是否在这个字典里,在就取,不在就创建
info={'stu1101':'tenglan','stu1102:':'lonze','stu1103':'xiaoze'}
print('stu1101'in info)
True
2、多级字典的嵌套
av_catalog={'欧美':{'www.youborn.com':['很多免费的,世界最大的','质量一般'],
'www.pornhub.com':['很多免费的,也很大','质量比yourborn高点'],
'letmedothistoyou,com':['多是自拍,高质量的图片很多','资源不多,更新慢'],
},
'日韩':{'tokoy-hot':['质量不清楚,个人已经不喜欢日韩范了','听说是收费的了']
},
'大陆':{'1024':['全部免费,真的,好人一生平安','服务器在国外,慢']
}
}
av_catalog['大陆']['1024'][1]="可以在国内做镜像"
print(av_catalog)
{'欧美': {'www.youborn.com': ['很多免费的,世界最大的', '质量一般'],
'www.pornhub.com': ['很多免费的,也很大', '质量比yourborn高点'],
'letmedothistoyou,com': ['多是自拍,高质量的图片很多', '资源不多,更新慢']},
'日韩': {'tokoy-hot': ['质量不清楚,个人已经不喜欢日韩范了', '听说是收费的了']},
'大陆': {'1024': ['全部免费,真的,好人一生平安', '可以在国内做镜像']}}
Process finished with exit code 0
3、创建
av_catalog={'欧美':{'www.youborn.com':['很多免费的,世界最大的','质量一般'],
'www.pornhub.com':['很多免费的,也很大','质量比yourborn高点'],
'letmedothistoyou,com':['多是自拍,高质量的图片很多','资源不多,更新慢'],
},
'日韩':{'tokoy-hot':['质量不清楚,个人已经不喜欢日韩范了','听说是收费的了']
},
'大陆':{'1024':['全部免费,真的,好人一生平安','服务器在国外,慢']
}
}
av_catalog.setdefault("台湾",{"www.baidu.com":[1,2]})#先去字典里查,没有就创建,有就返回原来的值
print(av_catalog)
{'欧美': {'www.youborn.com': ['很多免费的,世界最大的', '质量一般'], 'www.pornhub.com': ['很多免费的,也很大', '质量比yourborn高点'], 'letmedothistoyou,com': ['多是自拍,高质量的图片很多', '资源不多,更新慢']},
'日韩': {'tokoy-hot': ['质量不清楚,个人已经不喜欢日韩范了', '听说是收费的了']},
'大陆': {'1024': ['全部免费,真的,好人一生平安', '服务器在国外,慢']},
'台湾': {'www.baidu.com': [1, 2]}}
Process finished with exit code 0
av_catalog={'欧美':{'www.youborn.com':['很多免费的,世界最大的','质量一般'],
'www.pornhub.com':['很多免费的,也很大','质量比yourborn高点'],
'letmedothistoyou,com':['多是自拍,高质量的图片很多','资源不多,更新慢'],
},
'日韩':{'tokoy-hot':['质量不清楚,个人已经不喜欢日韩范了','听说是收费的了']
},
'大陆':{'1024':['全部免费,真的,好人一生平安','服务器在国外,慢']
}
}
av_catalog.setdefault("大陆",{"www.baidu.com":[1,2]})
print(av_catalog)
{'欧美': {'www.youborn.com': ['很多免费的,世界最大的', '质量一般'], 'www.pornhub.com': ['很多免费的,也很大', '质量比yourborn高点'], 'letmedothistoyou,com': ['多是自拍,高质量的图片很多', '资源不多,更新慢']},
'日韩': {'tokoy-hot': ['质量不清楚,个人已经不喜欢日韩范了', '听说是收费的了']},
'大陆': {'1024': ['全部免费,真的,好人一生平安', '服务器在国外,慢']}}
Process finished with exit code 0
4 update
info={'stu1101':'tenglan','stu1102':'lonze','stu1103':'xiaoze'}
b={"stu1101":"alex","1:3":"2:5"}
info.update(b)#两个字典合并,相同存在的就覆盖,都不存在的就一起合并
print(info)
{'stu1101': 'alex', 'stu1102': 'lonze', 'stu1103': 'xiaoze', '1:3': '2:5'}
info={'stu1101':'tenglan','stu1102:':'lonze','stu1103':'xiaoze'}
print(info.items())#把字典转换成列表
dict_items([('stu1101', 'tenglan'), ('stu1102:', 'lonze'), ('stu1103', 'xiaoze')])
5、fromkeys
c=dict.fromkeys([6,7,8],"test")
print(c)
{6: 'test', 7: 'test', 8: 'test'}
c=dict.fromkeys([6,7,8],[1,{'name':'alec'},444])
print(c)
c[7][1]['name']='jack'
print(c)
{6: [1, {'name': 'alec'}, 444], 7: [1, {'name': 'alec'}, 444], 8: [1, {'name': 'alec'}, 444]}
{6: [1, {'name': 'jack'}, 444], 7: [1, {'name': 'jack'}, 444], 8: [1, {'name': 'jack'}, 444]} 把所有的都改了,就像浅copy一样
6循环
info={'stu1101':'tenglan','stu1102':'lonze','stu1103':'xiaoze'}
for i in info:
print(i)
只打印key
stu1101
stu1102
stu1103
如果想打印value
循环方法1:
info={'stu1101':'tenglan','stu1102':'lonze','stu1103':'xiaoze'}
for i in info:
print(i,info[i])
stu1101 tenglan
stu1102 lonze
stu1103 xiaoze
循环方法2:
info={'stu1101':'tenglan','stu1102':'lonze','stu1103':'xiaoze'}
for k, v in info.items():#不高效,没有第一种循环高效,因为item是把字典转换成列表,数据量不大的时候感觉不出,数据量大的话,字典转换成列表就要转很久
print(k,v)
stu1101 tenglan
stu1102 lonze
stu1103 xiaoze
posted on 2019-04-14 13:10 googleWang 阅读(196) 评论(0) 编辑 收藏 举报