Python3字典魔法(函数)

目录

文章目录

1. len(__object)函数
说明:计算字典元素个数,即键的总数。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test={'name': 'yuki', 'age': 18}
print(type(test),len(test))

print(test.keys())  #输出字典所有键
print(test.values())  #输字典出所有值

运行结果如下:

<class 'dict'> 2
dict_keys(['name', 'age'])
dict_values(['yuki', 18])
2. str(__object)函数
说明:输出字典,以可打印的字符串表示。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test={'name': 'yuki', 'age': 18}
print(test,type(test))
str1=str(test)
print(str1,type(str1))

运行结果如下:

{'name': 'yuki', 'age': 18} <class 'dict'>
"{'name': 'yuki', 'age': 18}" <class 'str'>
3. id(__object)函数
说明:返回字典的内存地址
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test={'name': 'yuki', 'age': 18}
print(type(test),test,id(test))

运行结果如下:

<class 'dict'> {'name': 'yuki', 'age': 18} 30968568
4. clear(self)函数
说明:用于清空字典内所有元素,但字典还在。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


test={'name': 'yuki', 'age': 18}
print(type(test),test)

test.clear()
print(type(test),test)

运行结果如下:

<class 'dict'> {'name': 'yuki', 'age': 18}
<class 'dict'> {}
5. copy(self)函数
说明:返回一个字典的浅拷贝。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#


dict1={'name': 'yuki', 'age': 18}
print("dict1:",dict1,id(dict1))

dict2=dict1  #直接赋值
print("dict2:",dict2,id(dict2))

dict3=dict1.copy()
print("dict3:",dict3,id(dict3))
print('--------------分割线-----------------')

#修改dict1的数据
dict1['name']='blackcat'

print("dict1:",dict1,id(dict1))
print("dict2:",dict2,id(dict2))
print("dict3:",dict3,id(dict3))

运行结果如下:

dict1: {'name': 'yuki', 'age': 18} 30640888
dict2: {'name': 'yuki', 'age': 18} 30640888
dict3: {'name': 'yuki', 'age': 18} 30640960
--------------分割线-----------------
dict1: {'name': 'blackcat', 'age': 18} 30640888
dict2: {'name': 'blackcat', 'age': 18} 30640888
dict3: {'name': 'yuki', 'age': 18} 30640960
6. fromkeys(seq,value) 函数
说明:用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

tuple1=('name','age','gender')
print(tuple1,type(tuple1))

test=dict.fromkeys(tuple1)
print(test,type(test))

test=dict.fromkeys(tuple1,12)
print(test,type(test))

运行结果如下:

('name', 'age', 'gender') <class 'tuple'>
{'name': None, 'age': None, 'gender': None} <class 'dict'>
{'name': 12, 'age': 12, 'gender': 12} <class 'dict'>
7. get(self,key) 函数
说明:返回指定键的值,如果键不在字典中返回默认值。

key – 字典中要查找的键。
default – 如果指定的键不存在时,返回自己设定的默认值,如果没有设定,则返回None)。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test={'name': 'yuki', 'age': 18}
print(test,type(test))
print(test.get('name'))
print(test.get('gender'))
print(test.get('sex','女'))

运行结果如下:

{'name': 'yuki', 'age': 18} <class 'dict'>
yuki
None
8. setdefault(self,__key,__default)函数
说明:setdefault() 方法和 get()方法 类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。

key – 查找的键值。
default – 键不存在时,设置的默认键值。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test={'name': 'yuki', 'age': 18}
print(type(test),test)

test.setdefault('gender')
print(type(test),test)

test.setdefault('sex','女')
print(type(test),test)

运行结果如下:

<class 'dict'> {'name': 'yuki', 'age': 18}
<class 'dict'> {'name': 'yuki', 'age': 18, 'gender': None}
<class 'dict'> {'name': 'yuki', 'age': 18, 'gender': None, 'sex': '女'}
9. update(self,__m,__kwargs)函数
说明:把一个字典的 key/value(键/值) 对更新到字典 另外一个字典里面去。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

dict1={'name': 'yuki', 'age': 18}
print(type(dict1),dict1)

dict2={'gender': '女'}

dict1.update(dict2)
print(type(dict1),dict1)

运行结果如下:

<class 'dict'> {'name': 'yuki', 'age': 18}
<class 'dict'> {'name': 'yuki', 'age': 18, 'gender': '女'}
10. 字典 in 操作符
说明:字典 in 操作符用于判断键是否存在于字典中,如果键在字典里返回 true,否则返回 false。而 not in 操作符刚好相反,如果键在字典里返回 false,否则返回 true。

key – 要在字典中查找的键。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test={'name': 'yuki', 'age': 18}
#检测键 age 是否存在
if 'age' in test:
    print("键 age 存在")
else:
    print("键 age 不存在")

#检测键 gender 是否存在
if 'gender' in test:
    print("键 gender 存在")
else:
    print("键 gender 不存在")

#检测键 sex 是否存在
if 'sex' not in test:
    print("键 sex 不存在")
else:
    print("键 sex 存在")

运行结果如下:

键 age 存在
键 gender 不存在
键 sex 不存在
11. items(self) 函数
说明:以列表返回可遍历的(键, 值) 元组数组。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test={'name': 'yuki', 'age': 18,'gender':'女'}
print(test,type(test))

result=test.items()
print(result,type(result))

运行结果如下:

{'name': 'yuki', 'age': 18, 'gender': '女'} <class 'dict'>
dict_items([('name', 'yuki'), ('age', 18), ('gender', '女')]) <class 'dict_items'>
12. keys(self) 函数
说明:返回一个可迭代对象,可以使用 list() 来转换为列表。

注意:Python2.x 是直接返回列表。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test={'name': 'yuki', 'age': 18,'gender':'女'}
print(type(test),test)

result=test.keys()
print(type(result),result)

list1=list(result)  # 转换为列表
print(type(list1),list1)

运行结果如下:

<class 'dict'> {'name': 'yuki', 'age': 18, 'gender': '女'}
<class 'dict_keys'> dict_keys(['name', 'age', 'gender'])
<class 'list'> ['name', 'age', 'gender']
13. values(self) 函数
说明:返回一个迭代器,可以使用 list() 来转换为列表,列表为字典中的所有值。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test={'name': 'yuki', 'age': 18,'gender':'女'}
print(type(test),test)

result=test.values()
print(type(result),result)

list1=list(result)  # 转换为列表
print(type(list1),list1)

运行结果如下:

<class 'dict'> {'name': 'yuki', 'age': 18, 'gender': '女'}
<class 'dict_values'> dict_values(['yuki', 18, '女'])
<class 'list'> ['yuki', 18, '女']
14. pop(self,key) 函数
说明:删除字典给定键 key 所对应的值,返回值为被删除键的值。key值必须给出。
#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test={'name': 'yuki', 'age': 18,'gender':'女'}
print(type(test),test)

result=test.pop('name')
print(type(result),result)
print(type(test),test)

运行结果如下:

<class 'dict'> {'name': 'yuki', 'age': 18, 'gender': '女'}
<class 'str'> yuki
<class 'dict'> {'age': 18, 'gender': '女'}
15. popitem(self) 函数
说明:删除字典中的最后一对键和值。

如果字典已经为空,却调用了此方法,就报出KeyError异常。

#!/usr/bin/python
# -*- coding:utf-8 -*-
# created by yuki
#

test={'name': 'yuki', 'age': 18,'gender':'女'}
print(test,type(test))

test.popitem()
print(test,type(test))


test.popitem()
print(test,type(test))

test.popitem()
print(test,type(test))

test.popitem()
print(test,type(test))

运行结果如下:

{'name': 'yuki', 'age': 18, 'gender': '女'} <class 'dict'>
{'name': 'yuki', 'age': 18} <class 'dict'>
{'name': 'yuki'} <class 'dict'>
{} <class 'dict'>
Traceback (most recent call last):
  File "E:/softwares/python/pythonProject/day20200802/helloWorld.py", line 19, in <module>
    test.popitem()
KeyError: 'popitem(): dictionary is empty'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值