首页 > 编程语言 > 详细

python基础知识之字典相关

时间:2021-05-21 17:41:45      阅读:18      评论:0      收藏:0      [点我收藏+]

一、如何创建字典
创建字典同样有两种方式:
第1种:a = {} 或 a = {‘a‘: 1,’b‘:2}
第2种:a = dict() 或 a = dict (a=1, b=2) 或 a = dict ( [(‘a’, 1),(‘b, 2)] )
tips: dict()创建一个空字典。若要创建有内容的字典,可以通过a=x, b=y的形式传入dict(),又或者通过列表嵌套元组的方式。

>>> d = dict()
>>> print(d)
{}
>>> d = dict(a=1, b=2)
>>> print(d)
{‘a‘: 1, ‘b‘: 2}
>>> d = dict([(‘a‘, 10),(‘b‘, 20)])
>>> print(d)
{‘a‘: 10, ‘b‘: 20}


二、字典操作
我们来看一下字典有哪些方法:

>>> dir(dict)

[‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__gt__‘, ‘__hash__‘, ‘__init__‘, ‘__init_subclass__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__reversed__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘,
‘clear‘, ‘copy‘, ‘fromkeys‘, ‘get‘, ‘items‘, ‘keys‘, ‘pop‘, ‘popitem‘, ‘setdefault‘, ‘update‘, ‘values‘]

我们可以看到,字典的操作方法有clear,copy,fromkeys,get, items,keys,pop,popitem,setdefault, update,value
1、clear():清除字典内容

>>> d = {‘a‘:1, ‘b‘:2}
>>> print(d)
{‘a‘: 1, ‘b‘: 2}
>>> d.clear()
>>> print(d)
{}

我们可以看到,字典调用clear(0)方法后,变成了空字典。
2、copy():复制字典

>>> d = {‘a‘:1, ‘b‘:2}
>>> d_copy = d.copy()
>>> print(d_copy)
{‘a‘: 1, ‘b‘: 2}

3、fromkeys():从可迭代对象获取key值并创建列表

a_fromkeys = dict.fromkeys(["a", "b", "c"], [1, 3, 4])
print(a_fromkeys)

结果:

{‘a‘: [1, 3, 4], ‘b‘: [1, 3, 4], ‘c‘: [1, 3, 4]}

4、get():根据key值获取对应的value值

>>> d = {‘a‘:1, ‘b‘:2}
>>> s = d.get("a")
>>> print(s)
1

我们可以看到,通过字典调用get()并传入key值,就可以获取对应的value值了。
tips:其实这个a["key"]是一样的
5、keys()、values()、items():获取字典的key,获取字典的value,获取字典的key和value

>>> d = {‘a‘:1, ‘b‘:2}
>>> print(d.keys())
dict_keys([‘a‘, ‘b‘])
>>> print(d.values())
dict_values([1, 2])
>>> print(d.items())
dict_items([(‘a‘, 1), (‘b‘, 2)])

我们可以看到,keys()返回了dict_keys对象,以列表形式返回。values()返回了dict_values对象,也是以列表形式返回。items()返回了dict_items()对象,以列表嵌套元组的方式返回。
6、pop():删除字典种key对应的键值对。

>>> d = {‘a‘:1, ‘b‘:2, ‘c‘:3}
>>> s = d.pop("b")
>>> print(s)
2
>>> print(d)
{‘a‘: 1, ‘c‘: 3}

7、popitem():随机删除key和对应的value值。其实这里的随机是伪随机,其实和列表一样都是弹出最后一个元素,但由于字典是无序的,所以弹出的并不每次一致,给人的感知是随机弹出的。

fruits = {‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9}
d = fruits.popitem()
print(fruits)
print(d)

结果:最后一个键值对被弹出来并返回。

{‘apple‘: 8, ‘banana‘: 11}
(‘watermelen‘, 2.9)

8、setdefault():用于根据 key 来获取对应 value 的值。但该方法有一个额外的功能,即当程序要获取的 key 在字典中不存在时,该方法会先为这个不存在的 key 设置一个默认的 value,然后再返回该 key 对应的 value。

fruits = {‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9}
print(fruits)
# 设置默认值,该key在dict中不存在,新增key-value对
print(fruits.setdefault(‘pear‘, 9.2))
print(fruits)
# 设置默认值,该key在dict中存在,不会修改dict内容
print(fruits.setdefault(‘apple‘, 3.4))
print(fruits)

结果:我们可以看到,若key值不在字典里,则会以默认值新增,若存在则不新增也不改变

D:\python\python.exe E:/practiceMore/test_mark1.py
{‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9}
9.2
{‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9, ‘pear‘: 9.2}
8
{‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9, ‘pear‘: 9.2

总之,setdefault() 方法总能返回指定 key 对应的 value;如果该 key-value 对存在,则直接返回该 key 对应的 value;如果该 key-value 对不存在,则先为该 key 设置默认的 value,然后再返回该 key 对应的 value。
9、update():更新字典

fruits = {‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9}
fruits.update({"aaa": 12})
print(fruits)

结果:{”aaa":12}被添加到了fruits字典中了。

{‘apple‘: 8, ‘banana‘: 11, ‘watermelen‘: 2.9, ‘aaa‘: 12}

 



python基础知识之字典相关

原文:https://www.cnblogs.com/ctltest/p/14794220.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!