什么是字典
在Python中,字典(dictionary)是一种可变容器模型,它可以存储任意数量的Python对象,且不同于Python中的序列(如列表和元组),字典中的每个元素都是通过键来访问的。
字典的形式类似于JavaScript中的对象和PHP中的关联数组。在字典中,键和值之间用冒号分隔,不同的键和值对之间用逗号分隔,最后用大括号括起来。
创建字典
可以通过以下方式来创建字典:
# 创建空字典
dict1 = {}
# 用大括号和冒号的形式创建字典
dict2 = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
# 用dict函数创建字典
dict3 = dict(key1='value1', key2='value2', key3='value3')
# 用列表和元组创建字典
keys = ['key1', 'key2', 'key3']
values = ['value1', 'value2', 'value3']
dict4 = dict(zip(keys, values))
如何调用字典的key
在Python中,可以使用字典的键来访问字典中的值。有两种方式来访问字典中的键:
使用方括号[]来访问:
dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
# 方式一:用方括号[]来访问
value1 = dict['key1']
value2 = dict['key2']
value3 = dict['key3']
print(value1) # 输出:value1
print(value2) # 输出:value2
print(value3) # 输出:value3
使用get()函数来访问:
dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
# 方式二:用get()函数来访问
value1 = dict.get('key1')
value2 = dict.get('key2')
value3 = dict.get('key3')
print(value1) # 输出:value1
print(value2) # 输出:value2
print(value3) # 输出:value3
使用get()函数时,如何处理key不存在的情况
如果使用get()函数时,指定的key不存在于字典中,get()函数会返回None。例如:
dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
value4 = dict.get('key4')
print(value4) # 输出:None
# 如果想指定key不存在时返回的默认值,可以在get()函数中传入第二个参数
value4 = dict.get('key4', 'default_value')
print(value4) # 输出:'default_value'
使用in关键字判断key是否存在
在Python中,可以使用in关键字来判断一个key是否存在于一个字典中:
dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
# 判断key是否存在
if 'key1' in dict:
print('key1存在')
else:
print('key1不存在')
if 'key4' in dict:
print('key4存在')
else:
print('key4不存在')
使用keys()函数获取所有的key
可以使用keys()函数来获取一个字典中所有的key:
dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
keys = dict.keys()
print(keys) # 输出:dict_keys(['key1', 'key2', 'key3'])
keys()函数返回的是一个dict_keys类型的字典视图对象,它可以像列表一样迭代,但是不能像列表一样进行切片操作,可以通过list()函数将其转为列表。
使用values()函数获取所有的value
可以使用values()函数来获取一个字典中所有的value:
dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
values = dict.values()
print(values) # 输出:dict_values(['value1', 'value2', 'value3'])
values()函数返回的是一个dict_values类型的字典视图对象,它可以像列表一样迭代,但是不能像列表一样进行切片操作,可以通过list()函数将其转为列表。
使用items()函数获取所有的键值对
可以使用items()函数来获取一个字典中所有的键值对:
dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
items = dict.items()
print(items) # 输出:dict_items([('key1', 'value1'), ('key2', 'value2'), ('key3', 'value3')])
items()函数返回的是一个dict_items类型的字典视图对象,它可以像列表一样迭代,但是不能像列表一样进行切片操作,可以通过list()函数将其转为列表。
使用pop()函数弹出指定的key和value
可以使用pop()函数来弹出指定的key及其对应的value:
dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
value1 = dict.pop('key1')
print(value1) # 输出:'value1'
print(dict) # 输出:{'key2': 'value2', 'key3': 'value3'}
如果指定的key不存在,则pop()函数会抛出一个KeyError异常。
使用popitem()函数弹出一个随机的键值对
可以使用popitem()函数来弹出一个随机的键值对:
dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
item = dict.popitem()
print(item) # 输出:('key3', 'value3')
print(dict) # 输出:{'key1': 'value1', 'key2': 'value2'}
popitem()函数会从字典中随机弹出一个键值对,并将其作为元组返回。如果字典为空,则popitem()函数会抛出一个KeyError异常。
使用clear()函数清空字典
可以使用clear()函数来清空一个字典:
dict = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
dict.clear()
print(dict) # 输出:{}
clear()函数将会删除字典中所有的键值对,使得字典变为空字典。
总结
在Python中,可以使用方括号[]或者get()函数来访问字典中指定key的value,使用in关键字来判断key是否存在,通过keys()、values()、items()函数分别获取字典中所有的key、value、键值对,通过pop()、popitem()函数来弹出指定的key和value或者一个随机的键值对,使用clear()函数可以清空整个字典。