一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第9天,点击查看活动详情。
上一节我们简单了说明了一些python中字典的定义,以及一些增删改的方法。接下来我们讲解一下,字典常用的其他的方法。
1、dict
python中dict(seq)方法是创建字典的,在使用 dict() 函数创建字典时,可以传入多个列表或元组参数作为 key-value 对,每个列表或元组将被当成一个 key-value 对,因此这些列表或元组都只能包含两个元素。参数seq就表示传入的多个列表或者元组。返回一个字典。
eg:
list1 = [('数学',100),("语文",99),("英语",98)]
dict1 =dict(list1)
print(dict1)
此时打印结果为{'数学': 100, '语文': 99, '英语': 98},表示将列表list1转化成字典,列表list1作为参数,满足一个列表或者元组,且这个列表包含多个列表或者元组,而这些列表或者元组只能包含两个元素。列表list是一个大的列表,包含了3个元组,且每个元组都包含2个元素。最后可以转化成一个字典。
2、formkeys
python中dict.formkeys(seq,value)方法适用于创建新的字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。参数seq表示字典键值列表,参数value表示设置键序列(seq)的默认值,非必传项。
eg:
list1 = ["ceshi","你好","123","123","您好"]
dict1 = dict.fromkeys(list1,"1000")
print(dict1)
此时打印结果为{'ceshi': '1000', '你好': '1000', '123': '1000', '您好': '1000'},表示将列表list1中的所有元素作为字典dict1中所有的键,键对应的值都是1000,如果不传value表示默认键对应的值都为None。
3、get
python中dict.get(key,value)方法是查询指定键的项目值,返回指定键的值。参数key表示字典中要查询的键,必传项,参数value表示如果指定键的值不存在时,返回该默认值。非必传项。
eg:
dict1={'name': '张三', 'age': 18, '地址': 'China', '成绩': '优秀'}
m = dict1.get("name")
n = dict1.get("sex","不好意思没有性别")
print(m)
print(n)
此时打印结果m为“张三”,n为“不好意思没有性别”,表示在字典dict1中查询“name“的键查询到了返回对应的值,查询“sex”没有查询到,默认给出“不好意思没有性别”
4、items
python中dict.items()方法是以列表返回可遍历的(键, 值) 元组数组。
eg:
dict1={'name': '张三', 'age': 18, '地址': 'China', '成绩': '优秀'}
m = dict1.items()
print(m)
for key,value in dict1.items():
print(key,value)
此时打印结果m为dict_items([('name', '张三'), ('age', 18), ('地址', 'China'), ('成绩', '优秀')]),是一个可遍历的对象,循环打印的结果为“name 张三 age 18 地址 China 成绩 优秀”打印没有键对值。
5、keys
python中dict.keys() 方法以列表返回一个字典所有的键。
eg:
dict1={'name': '张三', 'age': 18, '地址': 'China', '成绩': '优秀'}
m = dict1.keys()
print(m)
此时打印结果为dict_keys(['name', 'age', '地址', '成绩']),表示获取了字典dict1中所有的键。
6、setdefaul
python中dict.setdefaul(key, default=None)方法和get()方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值。参数key表示查找的key值,参数default表示键不存在时,设置的默认,如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值键。
eg:
dict1={'name': '张三', 'age': 18, '地址': 'China', '成绩': '优秀'}
m = dict1.setdefault("name")
n = dict1.setdefault("sex","查找的key不存在")
print(m)
print(n)
此时打印结果,m为“张三”,n为“查找的key不存在”
7、update
python中dict.update(dict2) 方法是把字典 dict2 的键/值对更新到 dict 里,参数dict2表示添加到指定字典dict里的字典,该方法没有任何返回值,更新的dict。
eg:
dict1={'name': '张三', 'age': 18, '地址': 'China', '成绩': '优秀'}
dict2 = {"a":1,"b":2,"c":1,"d":3}
dict1.update(dict2)
print(dict1)
此时打印结果为{'name': '张三', 'age': 18, '地址': 'China', '成绩': '优秀', 'a': 1, 'b': 2, 'c': 1, 'd': 3},表示把字典dict2中的所有键对值都更新到dict1中。
8、values
python中dict.values() 方法是以列表返回字典中的所有值,同keys()方法用法类似。
eg:
dict1={'name': '张三', 'age': 18, '地址': 'China', '成绩': '优秀'}
m = dict1.values()
print(m)
此时打印结果为dict_values(['张三', 18, 'China', '优秀']),表示返回字典dict1中所有的value值。
9、pop
python中dict.pop(key,default)方法是删除字典给定键 key 所对应的值,返回值为被删除的值,参数key表示要删除key,参数default表示如果要删除的key不存在,则返回的值。非必传项,如果key不存在,且default 没有指定,此时会报错。
eg:
dict1={'name': '张三', 'age': 18, '地址': 'China', '成绩': '优秀'}
m = dict1.pop("name")
n = dict1.pop("sex","没有查询到对应的key值")
print(m)
print(n)
此时打印结果m为“张三”,n为“没有查询到对应的key值”,表示删除字典dict1中键为“name”和对应的value的值,删除键为“sex”,但是没有查询到,返回“没有查询到对应的key值”
10、popitems
python中dict.popitem() 方法是删除并返回字典中的最后一对键和值.
eg:
dict1={'name': '张三', 'age': 18, '地址': 'China', '成绩': '优秀'}
m = dict1.popitem()
print(m)
此时打印结果为('成绩', '优秀'),表示删除字典dict1中最后一对键对值,并返回这对键对值。