Python字典

1、字典

Python中的字典可以理解为一种键值对的集合
键必须是唯一的,值可以重复
值可以取任何类型,但键必须是你不可变的类型,如字符串、数组或元组等
字典是可变的,因此可以增加、删除、修改字典中的键值对

2、字典创建

字典中键和值用:分割,每个键值对用,分割,整个字典包含在一个{}中,格式如下:

d={key1:value1,key2:value2,key3:value3}

也可以使用dict()创建一个空字典,或者用dict()将一个包含双值子序列的序列转换成一个字典。

>>> d={'zhangsan':1,'lisi':2,'wangwu':3}
>>> d
{'zhangsan': 1, 'lisi': 2, 'wangwu': 3}
>>> d={}
>>> d
{}
>>> d=dict()
>>> d
{}
>>> s=[['a','b'],['c','d'],['e','f']]
>>> d=dict(s)
>>> d
{'a': 'b', 'c': 'd', 'e': 'f'}
>>>

3、访问、添加和修改元素

使用类似字符串索引的方式来访问一个元素,与字符串的区别在于索引为字典的键,当索引不存在时,会报错(KeyError)

>>> d={'a':1,'b':2,'c':3}
>>> d
{'a': 1, 'b': 2, 'c': 3}
>>> d['a']
1
>>> d['c']
3
>>> d[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 1
>>>

指定元素的键并赋予相应的值,若该键已经存在于字典中,那么该键对应的旧值会被取代,如果该键不在字典中,那么会将该键值对添加到字典

>>> d={'a':1,'b':2,'c':3}
>>> d['a']=10
>>> d['a']
10
>>> d
{'a': 10, 'b': 2, 'c': 3}
>>> d['d']=20
>>> d
{'a': 10, 'b': 2, 'c': 3, 'd': 20}
>>>

4、删除字典元素

使用del删除具有指定键的元素
具体语法为:del d[key]

>>> d
{'a': 10, 'b': 2, 'c': 3, 'd': 20}
>>> del d['d']
>>> d
{'a': 10, 'b': 2, 'c': 3}
>>>

**注意:如果不加索引会将字典的引用直接删除
         如果想要删除字典中的所有元素,应使用clear()方法**

5、合并字典

使用update()可以将一个字典中的键值对复制到另一个字典中

>>> first={'a':1,'b':2,'c':3}
>>> first
{'a': 1, 'b': 2, 'c': 3}
>>> second={'c':4,'d':5}
>>> second
{'c': 4, 'd': 5}
>>> first.update(second)
>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> second
{'c': 4, 'd': 5}
>>>

注意:如果待添加的字典与待扩充的字典包含同样的键,新归入字典的值会取代原有的值

6、判断键是否在字典中

使用 in 判断一个键是否在字典中

>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> second
{'c': 4, 'd': 5}
>>> 'a' in first
True
>>> 5 in first
False
>>>

7、获取字典中的所有键

使用keys()可以获取字典中的所有键

>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> keys=first.keys()
>>> keys
dict_keys(['a', 'b', 'c', 'd'])
>>> type(first.keys())
<class 'dict_keys'>
>>> for x in list(first.keys()) :
...     print(x," : ",first[x])
...
a  :  1
b  :  2
c  :  4
d  :  5
>>>

注意:在Python2中keys()会返回一个列表,但在Python3中则返回一个dict_keys的对象,该对象是键的迭代形式,对于大型字典非常有用,因为不需要时间和空间来创建返回的列表,当需要列表时可以使用list()转换

8、获取字典中的所有值

使用values()获取字典中的所有值

>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> values=first.values()
>>> values
dict_values([1, 2, 4, 5])
>>> type(values)
<class 'dict_values'>
>>> for x in list(values) :
...     print(x,end=',')
...
1,2,4,5,

9、获取所有键值对

使用items()获取所有键值对

>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> items=first.items()
>>> items
dict_items([('a', 1), ('b', 2), ('c', 4), ('d', 5)])
>>> type(items)
<class 'dict_items'>
>>> for x in list(items) :
...     print(x)
...     type(x)
...
('a', 1)
<class 'tuple'>
('b', 2)
<class 'tuple'>
('c', 4)
<class 'tuple'>
('d', 5)
<class 'tuple'>
>>>

注意:每一个键值对以元组的形式返回

10、复制字典

由于字典是可变的,对字典内容进行修改会反映到与之相关联的变量名上,有时将一个字典复制到一个新的字典中进行相关操作,防止修改原来的字典,使用copy()可以复制一个字典

>>> first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>> copy_first=first.copy()
>>> first['b']=100
>>> first
{'a': 1, 'b': 100, 'c': 4, 'd': 5}
>>> copy_first
{'a': 1, 'b': 2, 'c': 4, 'd': 5}
>>>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值