字典之fromkeys(),keys(),values(), items(),get(),clear(),pop(),update(),popitem()以及“=”值与copy()的差距


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)

输出:

{'林扬': '辛锐', '盛淮南': '焰灵姬', '余淮': '耿耿'}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值