dict
字典是无序的键值对集合,字典的每个键值对用冒号分隔,每个键值对之间用逗号分隔。
字典的每个键必须是唯一的,值可以是任意类型。
字典的操作与列表、元组类似,但字典是无序的。
字典的键与列表的“下标”类似,但是字典的键需要自己写,列表“下标”会自动生成
字典的键必须是不可变的,所以可以用数字、字符串或元组作为键,不能永列表。
字典的键不能重复,如果重复,后面的值会覆盖前面的值。
字典的键不能修改,但可以重新赋值。
字典的创建
创建字典的字面值
x = {} #空字典
x1 = {'name': 'Alice', 'age': 20, 'city': 'Beijing'} #创建字典
print(x1['name']) # Alice
字典的创建函数 dict()
d = dict() #空字典
d1 = dict(name='Alice', age=20, city='Beijing') #创建字典
d = {[1, 2, 3]: 'a'} 会报错
操作字典
访问
字典[键key]
d = {1:"a",2:"b"}
print(d[1]) # 输出a
print(d[3]) # 会报错:KeyError: 3
添加和修改
字典[键key] = 表达式
键不存在, 就添加
键存在, 会改变键对应的值
d = {1:"a",2:"b"}
d[1] = "c"
print(d) # {1: 'c', 2: 'b'}
d[3] = "123"
print(d) # {1: 'c', 2: 'b', 3: '123'}
in/notinin
in判断一个键是否存在于字典中,存在返回True, 否则返回False
d = {1:"a",2:"b"}
print(1 in d) # True
print(3 in d) # False
删除元素
使用del
d = {1:"a",2:"b",3:"c"}
del d[2]
print(d) # {1: 'a', 3: 'c'}
d.clear() #清空字典
print(d) # {}
del d #删除字典, 释放内存,删除变量d
字典特性
键不能重复
多个键出现,最后一个会覆盖前面的。
d = {1:"a",2:"b",3:"c",1:"d",1:'123'} #字典的键不能重复,如果重复,后面的值会覆盖前面的值。
print(d) # {1: '123', 2: 'b', 3: 'c'}
键必须不可变
可以用数字、字符串或元组,列表不行。
d ={[1, 2, 3]: 'a', 'name': 'Alice', 'age': 20, 'city': 'Beijing'}
print(d) # 会报错:TypeError: unhashable type: 'list'
常用API
官方文档:https://docs.python.org/zh-cn/3.13/library/stdtypes.html#mapping-types-dict
函数
以下是一些常用的字典函数:
-
dict.get(key, default=None):获取指定键的值,如果键不存在则返回默认值。- 示例:
my_dict.get('key', 'default_value')
- 示例:
-
dict.items():返回一个包含字典所有键值对的视图对象。- 示例:
my_dict.items()返回的是类似dict_items([('key1', 'value1'), ('key2', 'value2')])的格式
- 示例:
-
dict.keys():返回一个包含字典所有键的视图对象。- 示例:
my_dict.keys()返回的是类似dict_keys(['key1', 'key2'])的格式
- 示例:
-
dict.values():返回一个包含字典所有值的视图对象。- 示例:
my_dict.values()返回的是类似dict_values(['value1', 'value2'])的格式
- 示例:
-
dict.pop(key, default=None):删除指定键的条目并返回其值,如果键不存在则返回默认值。- 示例:
my_dict.pop('key', 'default_value')
- 示例:
-
dict.popitem():随机删除字典中的一个键值对,并返回该键值对。- 示例:
my_dict.popitem()返回的是类似('key', 'value')的格式
- 示例:
-
dict.update([other]):使用可迭代对象(通常是另一个字典)的键值对更新字典。- 示例:
my_dict.update({'key3': 'value3'})
- 示例:
-
dict.clear():清空字典,删除所有键值对。- 示例:
my_dict.clear()
- 示例:
-
dict.copy():返回字典的一个浅拷贝。- 示例:
new_dict = my_dict.copy()
- 示例:
-
dict.fromkeys(seq[, value]):创建一个新字典,seq中的元素作为字典的键,所有键的值为value。- 示例:
my_dict.fromkeys(['key1', 'key2'], 'value')会创建一个字典{'key1': 'value', 'key2': 'value'}
- 示例:
-
in和not in:检查字典中是否存在某个键。- 示例:
'key1' in my_dict返回True或False
- 示例:
这些函数可以帮助你更高效地操作和管理字典中的数据。
len(dict)
计算字典元素个数,即键的总数。
d = {1: [1, 2, 3], 2: {'name': 'Alice', 'age': 20, 'city': 'Beijing'}}
print(len(d)) # 2
list(d)
返回字典 d 中使用的所有键的列表。
d = {1: [1, 2, 3], 2: {'name': 'Alice', 'age': 20, 'city': 'Beijing'}}
print(list(d)) # [1, 2]
list(d.values()))
返回字典中所有值的列表
d = {1:'a',2:'b',3:'c'}
#返回字典中所有值的列表
print(list(d.values())) # ['a', 'b', 'c']
方法
dict.clear()删除字典内所有元素
dict.copy()返回一个字典的浅复制
dict.get(key, default=None)返回指定键的值,如果键不在字典中返回 default 设置的默认值
key in dict如果键在字典dict里返回true,否则返回false
dict.items()以列表返回一个视图对象
dict.keys()返回一个视图对象
dict.update(dict2)把字典dict2的键/值对更新到dict里
dict.values()返回一个视图对象
pop(key,default)删除字典 key(键)所对应的值,返回被删除的值。
3089

被折叠的 条评论
为什么被折叠?



