欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python数据结构之字典(dict)——超详细

程序员文章站 2022-05-19 15:43:18
...

字典(dict)

1.什么是字典

字典是具有映射关系的一个集合,有自己的标志性符号,用{}来定义。字典由多个键以及其对应的键值共同构成的,字典是无序的,只讲究对应关系,并且字典中的键是独一无二的

1.创建一个字典

直接用{}来创建

empty = {}
empty

   {}

type(empty)

   dict

下面这种方式,键必须加引号,且键与值之间用 : (冒号)连接起来

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict1

   {'a': 1, 'b': 2, 'c': 3}

使用dict()函数来创建

# 
dict1 = dict((('a', 1), ('b', 2), ('c', 3)))
dict1

   {'a': 1, 'b': 2, 'c': 3}

也可以这样来写,与值之间用 = (等号)连接起来的话,键的位置不能加上字符串的引号,否则会报错

dict1 = dict(a = 1, b = 2, c = 3)
dict1

   {'a': 1, 'b': 2, 'c': 3}

dict1 = dict(zip(['a', 'b', 'c'], [1, 2, 3]))
dict1

   {'a': 1, 'b': 2, 'c': 3}

2.修改键的值

dict1['a'] = 2
dict1['b'] = 1
dict1

   {'a': 2, 'b': 1, 'c': 3}

3.字典的内置函数

1.fromkeys()函数

用于创建并返回一个新的字典,它有俩个参数:第一个参数是字典的键;第二个参数是传入键的值,如果不写,默认为None

dict1 = {}
dict1.fromkeys((1, 2, 3))

   {1: None, 2: None, 3: None}

dict2 = {}
dict2.fromkeys((1, 2, 3), "Number")

   {1: 'Number', 2: 'Number', 3: 'Number'}

dict3 = {}
dict3.fromkeys((1, 2, 3), ("noe", "two", "three"))

   {1: ('noe', 'two', 'three'),
    2: ('noe', 'two', 'three'),
    3: ('noe', 'two', 'three')}

2.访问字典的方法:keys()、value()和items()

keys()用于返回字典中的键,values()用于返回字典中所有的值,items()返回字典中所有的键值对

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict1.keys()

   dict_keys(['a', 'b', 'c'])

dict1.values()

   dict_values([1, 2, 3])

dict1.items()

   dict_items([('a', 1), ('b', 2), ('c', 3)])

3.get()函数

当键不存在时,get()方法并不会报错,只是默默的返回一个None,表示啥也没找到.

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict1.get('d')

如果希望找不到数据时,返回指定的值,可以在get()的第二个参数中设置对应的默认返回值

dict1.get("孙悟空","木有^_^")

   '木有^_^'

也可以通过in 和 not in 来判断一个键是否在字典中

30 in dict1

   False

'a' in dict1

   True

4.clear()函数

清空一个字典

dict1.clear()
dict1

   {}

使用clear()函数,可以使所有指向该字典的其他字典都清空

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict2 = dict1
dict1.clear()
dict1

   {}

dict2

   {}

5.copy()函数

用来复制字典

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict2 = dict1.copy()
id(dict1)

   1799550839400

id(dict2)

   1799550838896

dict1['a'] = 2
dict1

   {'a': 2, 'b': 2, 'c': 3}

dict2

   {'a': 1, 'b': 2, 'c': 3}

6.pop()和popitem()

pop()是给定键弹出的值,而popitem()是弹出一个键值对

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict1.pop('a')

   1

dict1

   {'b': 2, 'c': 3}

dict1.popitem()

   ('c', 3)

dict1

   {'b': 2}

7.setdefault()与get()类似,但是setdefault()在字典中找不到对应的键时会自动添加

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict1.setdefault('d')
dict1

   'a': 1, 'b': 2, 'c': 3, 'd': None}

8.update()

用来更新字典

dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
dict1.update(a = 2)
dict1

   {'a': 2, 'b': 2, 'c': 3}

相关标签: python python