金融投资网站模板/百度免费推广方法
python中的字典
字典格式:
d = {key1 : value1, key2 : value2}
键是唯一且不可变的
值可以取任何数据类型
字典的基本操作
访问字典里的值
>>> tel = {'jack': 4098, 'sape': 4139}
>>> tel['jack']
4098
>>>
获取字字典中所有键的列表
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> list(tel)
['jack', 'guido', 'irv']
修改字典
# 新增元素
>>> tel['guido'] = 4127
# 修改键对应的值
>>> tel['jack'] = 4099
>>> tel
{'jack': 4099, 'sape': 4139, 'guido': 4127}
删除字典元素
# 使用del函数删除字典元素
>>> del tel['sape']
>>> tel
{'jack': 4099, 'guido': 4127}
字典内置函数和方法
内置函数
len(dict) - 计算字段元素个数
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> len(tel)
3
str(dict) - 输出字段,格式为可打印的字符串
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> str(tel)
"{'jack': 4099, 'guido': 4127, 'irv': 4127}"
type(variable) - 当变量为字典时,返回字典类型
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> type(tel)
内置方法
key in d - 如果d中存在键key则返回True,否则返回False
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> 'jack' in tel
True
key not in d
copy() - 返回原字典的浅拷贝
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> tel1 = tel.copy()
>>> tel1
{'jack': 4099, 'guido': 4127, 'irv': 4127}
classmethod fromkeys(iterable[, value]) - fromkeys()是一个返回新字典的类方法,value值默认为None,所有值都只引用一个单独的实例
# 未传入value,使用默认值None
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> tel.fromkeys(tel)
{'jack': None, 'guido': None, 'irv': None}
# 传入value,所有值都使用value
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> tel.fromkeys(tel, 2333)
{'jack': 2333, 'guido': 2333, 'irv': 2333}
get(key[, default]) - 如果key存在于字典中则返回key的值,否则返回default
>>> tel.get('jack', None)
4099
>>> print(tel.get('rose', None))
None
items() - 以列表返回可遍历的(key, value)元组数组
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> tel.items()
dict_items([('jack', 4099), ('guido', 4127), ('irv', 4127)])
keys() - 返回由字典键组成的一个迭代器,可以用list()转换成列表
>>> tel
{'jack': 4099, 'guido': 4127, 'irv': 4127}
>>> tel.keys()
dict_keys(['jack', 'guido', 'irv'])
>>> list(tel.keys())
['jack', 'guido', 'irv']
pop(key[, default]) - 如果key存在于字典中则返回key的值,否则返回default
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127}
>>> tel.pop('jack')
4098
>>> tel
{'guido': 4127, 'irv': 4127}
popitem() - 从字典中移除并返回一个(键,值)对。键值对会按LIFO的顺序被返回。
>>> tel
{'guido': 4127, 'irv': 4127, 'jack': 4098}
>>> tel.popitem()
('jack', 4098)
>>> tel
{'guido': 4127, 'irv': 4127}
reversed(d) - 返回一个逆序获取字典键的迭代器
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127}
>>> print(list(reversed(tel)))
['irv', 'guido', 'jack']
setdefault(key[, default]) - 如果字典存在键key,返回它的值。否则,插入值为default的键key
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127}
>>> tel.setdefault('jack')
4098
>>> tel.setdefault('rose', 4000)
4000
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127, 'rose': 4000}
update([other]) - 使用来自other的键/值更新字典,覆盖原有的键。
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 4127, 'rose': 4000}
>>> tel1 = {'irv': 5000, 'dada': 2000}
>>> tel.update(tel1)
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 5000, 'rose': 4000, 'dada': 2000}
values() - 返回由字典值构成的一个新视图
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 5000, 'rose': 4000, 'dada': 2000}
>>> tel.values()
dict_values([4098, 4127, 5000, 4000, 2000])
clear() - 移除字典中的所有元素
>>> tel
{'jack': 4098, 'guido': 4127, 'irv': 5000, 'rose': 4000, 'dada': 2000}
>>> tel.clear()
>>> tel
{}
参考文章