python 序列类型4(字典Dictionary)
程序员文章站
2022-03-27 13:33:28
字典Dictionary字典是一种可变容器,可存储任意数据对象字典中存在键值对key->value 键值对用冒号分割,每个键值对用逗号分割。字典中的键是唯一的,值可以不唯一1 字典的创建与访问dict={} #创建一个空字典dict1={"马云":"阿里巴巴","丁磊":"网易","马化腾":"腾讯"}print(dict)print(dict1)print(dict1['马云'])for key in dict1: print(dict1[key])运行结果如下{...
字典Dictionary
字典是一种可变容器,可存储任意数据对象
字典中存在键值对key->value 键值对用冒号分割,每个键值对用逗号分割。
字典中的键是唯一的,值可以不唯一
1 字典的创建与访问
dict={} #创建一个空字典
dict1={"马云":"阿里巴巴","丁磊":"网易","马化腾":"腾讯"}
print(dict)
print(dict1)
print(dict1['马云'])
for key in dict1:
print(dict1[key])
运行结果如下
{}
{'马云': '阿里巴巴', '丁磊': '网易', '马化腾': '腾讯'}
阿里巴巴
阿里巴巴
网易
腾讯
注:当访问一个不存在的键值对时,报错keyError
字典的键是唯一的,当一个键出现多次时,最后出现的键值对会覆盖前面的键值对
如下:
dict1={"马云":"阿里巴巴","丁磊":"网易","马化腾":"腾讯","马云":"乡村老师"}
print(dict1['马云'])
运行结果如下
乡村老师
2 字典的修改与添加
dict1={"马云":"阿里巴巴","丁磊":"网易","马化腾":"腾讯"}
dict1['马云']='乡村教师'
dict1['张小龙']='微信'
print(dict1)
运行结果如下
{'马云': '乡村教师', '丁磊': '网易', '马化腾': '腾讯', '张小龙': '微信'}
3 字典的删除 del
单个键值对的删除
dict1={"马云":"阿里巴巴","丁磊":"网易","马化腾":"腾讯"}
del dict1['丁磊']
print(dict1)
运行结果如下
{'马云': '阿里巴巴', '马化腾': '腾讯', '张小龙': '微信'}
整个字典的删除 删除字典被回收后不可输出(删除不是清空dict.clear())
dict1={"马云":"阿里巴巴","丁磊":"网易","马化腾":"腾讯"}
del dict1
print(dict1)
NameError: name 'dict1' is not defined
4 字典的内置方法
cmp(dict1, dict2) !python2.x下的内置比较方法 | 比较两个字典元素 |
---|---|
operator.eq(dict1,dict2) !python3.下的内置比较方法 | 比较两个字典元素 |
len(dict) | 计算字典元素个数 |
str(dict) | 输出字典可打印的字符串表示 |
dict.clear() | 删除字典内所有元素 |
dict.copy() | 返回一个字典的浅复制 |
dict.fromkeys(seq[, val]) | 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值 |
dict.get(key, default=None) | 返回指定键的值,如果值不在字典中返回default值 |
dict.has_key(key) | 如果键在字典dict里返回true,否则返回false |
dict.keys() | 以列表返回一个字典所有的键 |
dict.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
dict.update(dict2) | 把字典dict2的键/值对更新到dict里 |
dict.values() | 以列表返回字典中的所有值 |
pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值 |
popitem() | 返回并删除字典中的最后一对键和值 |
该方法于菜鸟教程整理
4.1 比较两个字典元素
我这里使用的是python3
import operator
dict1={'a':'A','b':'B','c':'C'}
dict2={'A':'a','B':'b','C':'c'}
print(operator.eq(dict1,dict2))
运行结果如下
False
4.2 dict.clear() 删除字典内所有元素
dict1={'a':'A','b':'B','c':'C'}
dict1.clear() #不能直接输出dict1.clear() 否则返回None
print(dict1)
运行结果如下
{}
4.3 dict.copy() 返回一个字典的浅复制
深复制与浅复制 点击这里查看详情
dict1={'a':'A','b':'B','c':'C'}
dict2=dict1.copy()
print(dict2)
运行结果如下
{'a': 'A', 'b': 'B', 'c': 'C'}
4.4 dict.fromkeys(seq[, val]) 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
初始值的批量导入
list1=('a','b','c','d')
lsit2=('A','B','C','D')
dict1=dict.fromkeys(list1) #创建一个值为空的字典
dict2=dict.fromkeys(list1,'Test') #创建一个所有键对应的值为Test的字典
print(dict1)
print(dict2)
运行结果如下
{'a': None, 'b': None, 'c': None, 'd': None}
{'a': 'Test', 'b': 'Test', 'c': 'Test', 'd': 'Test'}
4.5 dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
dict3={'a':'A','b':'B','c':'C'}
print(dict3.get('E',"该键值对不存在"))
运行结果如下
该键值对不存在
4.6 dict.values() 以列表返回字典中的所有值 dict.values() 以列表返回字典中的所有值
dict3={'a':'A','b':'B','c':'C'}
print(dict3.keys())
print(dict3.values())
运行结果如下
dict_keys(['a', 'b', 'c'])
dict_values(['A', 'B', 'C'])
4.7 pop()popitem()
pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
popitem() 返回并删除字典中的最后一对键和值
dict3={'a':'A','b':'B','c':'C'}
print(dict3.pop('a'))
print(dict3)
print(dict3.popitem())
print(dict3)
A
{'b': 'B', 'c': 'C'}
('c', 'C')
{'b': 'B'}
本文地址:https://blog.csdn.net/weixin_43747389/article/details/107401727