python字典内置方法_python之字典二 内置方法总结

Python字典包含了以下内置方法:

clear()函数用于删除字典内所有元素

dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

print('the start len %d' %len(dict1))

dict1.clear()

print('the end len %d' %len(dict1))

结果:

[python@master tmp]$ python3 c.py

the start len3the end len0

copy() 函数返回一个字典的浅复制

例子1:

dict1= {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

dict2=dict1.copy()

print('New Dictinary : %s' %str(dict2))

结果:

[python@master tmp]$ python3 d.py

New Dictinary : {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

例子2:

dict1= {'user':'runoob','num':[1,2,3]}

dict2=dict1 # 浅拷贝: 引用对象

dict3=dict1.copy() # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用

dict1['user']='root'dict1['num'].remove(1)

print(dict1)

print(dict2)

print(dict3)

结果

[python@master tmp]$ python3 d.py

{'user': 'root', 'num': [2, 3]}

{'user': 'root', 'num': [2, 3]}

{'user': 'runoob', 'num': [2, 3]}

实例中 dict2 其实是 dict1 的引用(别名),所以输出结果都是一致的,dict3 父对象进行了深拷贝,不会随dict1 修改而修改,子对象是浅拷贝所以随 dict1 的修改而修改。

fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。

dict.fromkeys(seq[,value])     seq -- 字典键值列表。    value -- 可选参数, 设置键序列(seq)的值。

seq =('Google', 'Runoob', 'Taobao')

dict= dict.fromkeys(seq)

print ("新字典为 : %s" %str(dict))

dict= dict.fromkeys(seq, 10)

print ("新字典为 : %s" %str(dict))

结果:

[python@master tmp]$ python3 f.py

新字典为 : {'Google': None, 'Runoob': None, 'Taobao': None}

新字典为 : {'Google': 10, 'Runoob': 10, 'Taobao': 10}

get() 函数返回指定键的值,如果值不在字典中返回默认值(None)

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

print('Name: %s' % dict.get('Name'))

print('adress1: %s' % dict.get('adress','henan'))

print('adress2: %s' % dict.get('adress'))

结果:

[python@master tmp]$ python3 a.py

Name: Zara

adress1: henan

adress2: None

has_key() 函数用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false

python3 中放弃了这个函数,用变量in来代替

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

dict_keys=input('please input dict key:')if dict_keys indict:

print(dict_keys+': %s'%dict[dict_keys])else:

print(dict_keys+'not in dict')

结果:

[python@master tmp]$ python3 b.py

please input dict key: Name

Name: Zara

items() 函数以列表返回可遍历的(键, 值) 元组数组

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

dict_keys=input('please input dict key:')if dict_keys indict:

print(dict_keys+': %s'%dict[dict_keys])else:

print(dict_keys+'not in dict')

结果:

[python@master tmp]$ python3 c.py

字典值 : dict_items([('Name', 'Zara'), ('Age', 7), ('Class', 'First')])

Name:Zara

Age:7Class:First

keys() 函数以列表返回一个字典所有的键

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

print("dict's keys :%s" %dict.keys())

结果:

[python@master tmp]$ python3 d.py

dict's keys :dict_keys(['Name','Age','Class'])

setdefault() 函数和get()类似, 如果键不存在于字典中,将会添加键并将值设为默认值

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

print("dict's keys :%s" % dict.setdefault('Name',None))

print(dict)

print("dict's keys :%s" % dict.setdefault('Adress','henan'))

print(dict)

结果:

[python@master tmp]$ python3 f.py

dict's keys :Zara

{'Name': 'Zara', 'Age': 7, 'Class': 'First'}

dict's keys :henan

{'Name': 'Zara', 'Age': 7, 'Class': 'First', 'Adress': 'henan'}

update() 函数把字典dict2的键/值对更新到dict里

dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

print(dict1)

print('updated end')

dict2= {'Adress': 'henan'}

dict1.update(dict2)

print(dict1)

结果:

[python@master tmp]$ python3 g.py

{'Name': 'Zara', 'Age': 7, 'Class': 'First'}

updated end

{'Name': 'Zara', 'Age': 7, 'Class': 'First', 'Adress': 'henan'}

values() 函数以列表返回字典中的所有值

dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

print("dict1's values : %s" %dict1.values())

结果:

[python@master tmp]$ python3 m.py

dict1's values : dict_values(['Zara', 7,'First'])

pop() 方法删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值

dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

dict2=dict1.pop('Name')

print('dict1 :%s' %dict1)

print('dict2 :%s' %dict2)

结果:

[python@master tmp]$ python31.py

dict1 :{'Age': 7, 'Class': 'First'}

dict2 :Zara

popitem() 方法随机返回并删除字典中的一对键和值,如果字典已经为空,却调用了此方法,就报出KeyError异常。

dict1 = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

dict2=dict1.popitem()

print('dict1 :%s' %dict1)

print('dict2 :%s' %str(dict2))

结果:

[python@master tmp]$ python32.py

dict1 :{'Name': 'Zara', 'Age': 7}

dict2 :('Class', 'First')

我们所处的世道,总是这般复杂,走着走着,杂草丛生,荒庙破寺。走着走着,杨柳依依,桃花烂漫。走着走着,穷山恶水,夜幕深沉。走着走着,琼楼玉宇,大放光明。

——剑来《人间苦难说不得也》 ​​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值