python之字典(dict)

时间:2022-08-12 15:39:56

字典:一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。

字典由键和对应值成对组成 {key:value,key1,value1}, 例如:

dic = {'中国': '汉语', '美国': '英语', '韩国': '韩语'}

注意:

  (1)每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})。
  (2)键必须独一无二,但值则不必。
  (3)值可以取任何数据类型.

字典相关操作:

1.增

dic = {'中国': '汉语', '美国': '英语'}
dic['日本'] = '日语'
dic['韩国'] = '韩语'
print(dic)
#setdefault()
dic.setdefault('韩国', '韩语')
dic.setdefault('英国')
dic.setdefault('中国', '还有英语')
print(dic)

2.删

dic = {'中国': '汉语', '美国': '英语', '韩国': '韩语'}
dic.pop('韩国') #根据指定key, 删除key:value
dic.popitem() #删除最后一项. python的早期版本中,字典是无序的,随机删除一项.
del dic['美国'] #清空
print(dic)

3.改

dic = {'中国': '汉语', '美国': '英语', '韩国': '韩语'}
dic['中国'] = '汉语,还有其他语言'
print(dic)#{'中国': '汉语,还有其他语言', '美国': '英语', '韩国': '韩语'}

4.查

dic = {'中国': '汉语', '美国': '英语', '韩国': '韩语'}
#1.dic[key]
print(dic['中国']) #汉语
print(dic['日本']) #KeyError: '日本' 报错,'日本'key不存在 #2.dic.get(key, 值)
print(dic.get('中国')) #汉语
print(dic.get('日本')) #None 当key不存在返回None
print(dic.get('日本', '没有这个')) #当key不存在,返回第二个参数,第二个参数默认为None ##3.dic.setdefault(key, value)
## 第一个功能是添加(当key不存在).
## 第二个功能是查询(根据给的key查询)
##执行流程:判断给的key是否存在,如果存在,就不执行新增流程,直接查询出这个key对应的value.
## 如果key不出那种,先执行新增操作,再使用key吧对应的value查询出来.
ret = dic.setdefault('日本', '日语')
print(ret) #日语
ret1 = dic.setdefault('美国', '汉语')
print(ret1) #英语

字典遍历:

1.直接使用for遍历

dic = {'中国': '汉语', '美国': '英语', '韩国': '韩语'}
for key in dic:#直接循环字典拿到的是key,有key直接拿value
print(key) #取出来key
print(dic[key])#根据key拿对应的value
'''
中国
汉语
美国
英语
韩国
韩语
'''

2.使用items()直接拿到key,value

dic = {'中国': '汉语', '美国': '英语', '韩国': '韩语'}
for k, v in dic.items():
print(k, v) '''
中国 汉语
美国 英语
韩国 韩语
'''

字典的其他操作

1.keys()获取到所有的键

dic = {'中国': '汉语', '美国': '英语', '韩国': '韩语'}
for k in dic.keys():
print(k) '''
中国
美国
韩国
'''

2.value()获取到所有的值

dic = {'中国': '汉语', '美国': '英语', '韩国': '韩语'}
for v in dic.values():
print(v) '''
汉语
英语
韩语
'''

3.items()获取到所有键值对

dic = {'中国': '汉语', '美国': '英语', '韩国': '韩语'}
for k, v in dic.items():
print(k, v) '''
中国 汉语
美国 英语
韩国 韩语
'''