fromkeys 是把所有的键值都赋值同样的内容(如果不指定内容则默认赋值为none) 不能通过fromkeys来修改原字典键值的内容,它是重新创建一个字典,并不会对原来字典的键值进行修改。
用法:fromkeys((键值),(初始化数据)) 没有初始化数据则默认为none
w = {} ww = {} print(w.fromkeys((1, 2, 3, 4, 5, 6))) print(ww.fromkeys((1, 2, 3, 4 ,5 ,6),("林扬","余周周"))) print(ww.fromkeys((1, 2, 3), ("余淮","耿耿"))) //企图修改ww字典键值为1,2,3的内容,由输出可以看出,它是创建了一个新的字典
输出:
{1: None, 2: None, 3: None, 4: None, 5: None, 6: None}
{1: ('林扬', '余周周'), 2: ('林扬', '余周周'), 3: ('林扬', '余周周'), 4: ('林扬', '余周周'), 5: ('林扬', '余周周'), 6: ('林扬', '余周周')}
{1: ('余淮', '耿耿'), 2: ('余淮', '耿耿'), 3: ('余淮', '耿耿')}
keys()是返回键值(常和for循环联用)
a = {"林扬":"余周周", "盛淮南":"洛枳", "余淮":"耿耿"} for eachkey in a.keys(): print(eachkey, end = " ")
输出:
林扬 盛淮南 余淮
Process finished with exit code 0
values()是返回键值的内容(常和for循环联用)
a = {"林扬":"余周周", "盛淮南":"洛枳", "余淮":"耿耿"} for eachvalues in a.values(): print(eachvalues, end = " ")
输出:
余周周 洛枳 耿耿
Process finished with exit code 0
items()是把键值和内容一起返回(常和for循环联用)
a = {"林扬":"余周周", "盛淮南":"洛枳", "余淮":"耿耿"} for eachitem in a.items(): print(eachitem, end = " ")
输出:
('林扬', '余周周') ('盛淮南', '洛枳') ('余淮', '耿耿')
Process finished with exit code 0
get()也是返回键值和内容,是按键值查找,如果get的内容是字典里有的,那就返回键值和内容;如果字典里没有默认返回键值内容为none,也可以自己定义内容
a = {"林扬":"余周周", "盛淮南":"洛枳", "余淮":"耿耿"} print(a.get("林扬")) print(a.get("任逸帆")) print(a.get("毕十三", "林洛雪"))
输出:
余周周
None
林洛雪
clear()是清空一个字典(给一个字典赋值也可以清空,但和clear区别很大:用一个字典给另一个字典赋值,如果对一个字典进行操作的话,那么另一个字典不受影响;但是如果给一个字典使用clear()清空的话,两个字典都会变成空。通过代码说明)
pop()是按键值弹出内容,popitem()是随机弹出
a = {"林扬":"余周周", "盛淮南":"洛枳", "余淮":"耿耿"} print(a.pop("林扬")) print(a.popitem())
输出:
余周周
('余淮', '耿耿')
copy是拷贝内置函数,与用“=”赋值的不同:(拷贝赋值后,对原字典进行操作,另一个字典不受影响;如果是“=”赋值,对原字典进行操作,用原字典赋值的字典也会受影响)
a = {"林扬":"余周周", "盛淮南":"洛枳", "余淮":"耿耿"} b = {} c = {} b = a.copy() c = a a["毕十三"] = "林洛雪" print(b) print(c) a.clear() print(b) print(c)
输出:
{'林扬': '余周周', '盛淮南': '洛枳', '余淮': '耿耿'}
{'林扬': '余周周', '盛淮南': '洛枳', '余淮': '耿耿', '毕十三': '林洛雪'}
{'林扬': '余周周', '盛淮南': '洛枳', '余淮': '耿耿'}
{}
Process finished with exit code 0
setdefault和get差不多,也是按照键值查找,但是如果setdefault所要查找的键值不存在时就会在字典里自动添加一个,内容默认为空
a = {"林扬":"余周周", "盛淮南":"洛枳", "余淮":"耿耿"} a.setdefault("路桥川") print(a) a.setdefault("毕十三", "林洛雪") print(a)
输出:
{'林扬': '余周周', '盛淮南': '洛枳', '余淮': '耿耿', '路桥川': None}
{'林扬': '余周周', '盛淮南': '洛枳', '余淮': '耿耿', '路桥川': None, '毕十三': '林洛雪'}
a。update(b) 用b字典中键值内容去更新字典a中所对应的键值内容
a = {"林扬":"余周周", "盛淮南":"洛枳", "余淮":"耿耿"} b = {"林扬":"辛锐", "盛淮南":"焰灵姬"} a.update(b) print(a)
输出:
{'林扬': '辛锐', '盛淮南': '焰灵姬', '余淮': '耿耿'}