首页 > 编程语言 > 详细

python基础知识之字典相关

时间:2021-05-21 17:41:45      阅读:12      评论: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)
# 设置默认值,该keydict中不存在,新增key-value
print(fruits.setdefault(‘pear‘, 9.2))
print(fruits)
# 设置默认值,该keydict中存在,不会修改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 版权所有
打开技术之扣,分享程序人生!