Python学习笔记:字典

这篇博客详细介绍了Python字典的基本语法和注意事项,包括键值对的概念、通过键访问、键的类型、字典的修改与删除操作、字典的排序方式,以及字典与其他数据类型的交互。同时强调了字典中键的唯一性和如何插入、更新字典项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.基本语法

dist1 = {'Person_1':30,'Person_2':28,'Person_3':32}

键值对:
键 (key) : Person_1
值 (value) : 30

>>> dist1 = {'Person_1':30,'Person_2':28,'Person_3':32}
>>> dist1
{'Person_2': 28, 'Person_3': 32, 'Person_1': 30}

2.注意事项

2.1 只能通过键访问

>>> dist1 = {'Person_1':30,'Person_2':28,'Person_3':32}
>>> dist1['Person_3']
32
>>> dist1["Person_3"]
32

2.2 不能通过值访问

>>> dist1 = {'Person_1':30,'Person_2':28,'Person_3':32}
>>>> dist1[32]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 32
>>> dist1['32']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: '32'

2.3 键需要加引号

>>> dist1 = {'Person_1':30,'Person_2':28,'Person_3':32}
>>> dist1[Person_3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Person_3' is not defined

2.4 key可以是一个变量

>>> name = 'Person_4'
>>> dist1 = {'Person_1':30,'Person_2':28,'Person_3':32,name:34}
>>> dist1
{'Person_4': 34, 'Person_2': 28, 'Person_3': 32, 'Person_1': 30}
>>> dist1[name]
34

2.5 只能修改字典的value,不能修改字典的key

>>> dist1 = {'name':'Person_1','age':34}
>>> dist1
{'age': 34, 'name': 'Person_1'}
>>> dist1['age'] = 40
>>> dist1
{'age': 40, 'name': 'Person_1'}
>>> dist1['name'] = 'Person_5'
>>> dist1
{'age': 40, 'name': 'Person_5'}

2.6 只能删除key,不能删除value

>>> dist1 = {'Person_1':30,'Person_2':28,'Person_3':32}
>>> del dist1['Person_3']
>>> dist1
{'Person_2': 28, 'Person_1': 30}
>>> del dist1[28]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 28

2.7 删除整个字典,删除后再访问会报错

>>> dist1 = {'Person_1':30,'Person_2':28,'Person_3':32}
>>> dist1
{'Person_2': 28, 'Person_3': 32, 'Person_1': 30}
>>> del dist1
>>> dist1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'dist1' is not defined

2.8 清空字典

>>> dist1 = {'Person_1':30,'Person_2':28,'Person_3':32}
>>> dist1.clear()
>>> dist1
{}

2.9 删除指定key

>>> dist1 = {'Person_1':30,'Person_2':28,'Person_3':32}
>>> dist1.pop('Person_2')
28
>>> dist1
{'Person_3': 32, 'Person_1': 30}

2.10 弹出第一个键值对;字典的排序是按照key的hash值来排序

>>> dist1 = {'Person_1':30,'Person_2':28,'Person_3':32}
>>> dist1.popitem()
('Person_2', 28)
>>> dist1
{'Person_3': 32, 'Person_1': 30}
>>> dist1.popitem()
('Person_3', 32)
>>> dist1
{'Person_1': 30}
>>> dist1.popitem()
('Person_1', 30)
>>> dist1
{}

2.11 空字典、空列表、空元组

>>> dist1 = {}
>>> dist1
{}
>>> len(dist1)
0
>>> type(dist1)
<type 'dict'>
>>> dist1 = {'key':12}
>>> len(dist1)
1
>>>
>>> list1 = []
>>> list1
[]
>>> len(list1)
0
>>> type(list1)
<type 'list'>
>>> list1 = [1]
>>> len(list1)
1
>>>
>>> tuple1 = ()
>>> tuple1
()
>>> len(tuple1)
0
>>> type(tuple1)
<type 'tuple'>
>>> tuple1 = ('a',)
>>> len(tuple1)
1

2.12 系统把tuple当整形变量时,整形变量没有len函数

>>> tuple1 = (1)
>>> type(tuple1)
<type 'int'>
>>> len(tuple1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'int' has no len()
>>>
>>> tuple1 = ('1')
>>> type(tuple1)
<type 'str'>
>>> len(tuple1)
1
>>>
>>> tuple1 = (1,)
>>> type(tuple1)
<type 'tuple'>
>>> len(tuple1)
1

2.13 值如果不确定可以为空

>>> dist1 = {'a':100,'b':200,'c':None,'d':400}
>>> dist1
{'a': 100, 'c': None, 'b': 200, 'd': 400}

2.14 值可以相同,但键不可相同 -> 如果有相同的键,则后面的覆盖前面的

>>> dist1 = {'a':100,'b':200,'c':None,'c':300}
>>> dist1
{'a': 100, 'c': 300, 'b': 200}

2.15 按key来排序的

>>> dist1 = {'a':100,'b':200,'c':None,'d':400}
>>> dist1
{'a': 100, 'c': None, 'b': 200, 'd': 400}
>>> min(dist1)
'a'
>>> max(dist1)
'd'

2.16 如果key和value都相等,则cmp返回0,否则返回-1/1

>>> dist1 = {'a':1,'b':2,'c':3}
>>> dist2 = {'x':1,'y':2,'z':3}
>>> cmp(dist1,dist2)
-1
>>> dist1 = {'a':1,'b':2,'c':3}
>>> dist3 = {'a':0,'b':1,'c':2}
>>> cmp(dist1,dist3)
1
>>> dist1 = {'a':1,'b':2,'c':3}
>>> dist4 = {'a':1.0,'b':2.0,'c':3.0}
>>> cmp(dist1,dist4)
0

2.17 has_key -> 用于判断某个key是否在字典中;在则返回Ture,不在返回False

>>> dist1 = {'a':1,'b':2,'c':3}
>>> dist1.has_key('a')
True
>>> dist1.has_key('d')
False

2.18 字典如何转成列表

>>> dist1 = {'a':1,'b':None,'c':3}
>>> dist1.items()
[('a', 1), ('c', 3), ('b', None)]
>>> list1 = dist1.items()
>>> list1
[('a', 1), ('c', 3), ('b', None)]
>>> list1[2][1]
>>> list1[1][1]
3

2.19 把键值对做成列表;把key做成列表;把value做成列表

>>> dist1 = {'a':1,'b':None,'c':3}
>>> list1 = dist1.items()
>>> list1
[('a', 1), ('c', 3), ('b', None)]
>>> list1 = dist1.keys()
>>> list1
['a', 'c', 'b']
>>> list1 = dist1.values()
>>> list1
[1, 3, None]

2.20 给key赋值value

>>> dist1 = {'a':1,'b':None,'c':3}
>>> dist1['b'] = 2
>>> dist1
{'a': 1, 'c': 3, 'b': 2}

2.21 setdefault(key,value) -> 插入一个键值对

>>> dist1 = {'a':1,'b':None,'c':3}
>>> dist1.setdefault('d',4)
4
>>> dist1
{'a': 1, 'c': 3, 'b': None, 'd': 4}

2.22 update -> 更新整个字典

>>> dist1 = {'a':1,'b':2,'c':3}
>>> dist2 = {'b':4,'c':5,'d':6}
>>> dist1.update(dist2)
>>> dist1
{'a': 1, 'c': 5, 'b': 4, 'd': 6}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值