字典函数在Python中的使用
Python中的字典(Dictionary)是一种可变容器模型,可以存储任意数量的Python对象,可以是数字、字符串、元组等。字典用键值对(key-value)来存储数据,其中键必须是不可变的数据类型,通常是字符串,值可以是任意数据类型。在Python中,字典使用大括号{}表示,键值对之间用冒号:连接,多个键值对之间用逗号分隔。例如:
person = {'name': 'Tom', 'age': 20, 'gender': 'male'}
该字典中,键分别是'name'、'age'、'gender',对应的值是'Tom'、20、'male'。
Python提供了许多内置函数来操作字典,以下是一些常用的字典函数。
1. clear()
clear()函数用于删除字典中所有元素。例如:
person = {'name': 'Tom', 'age': 20, 'gender': 'male'}
person.clear()
print(person)
输出结果为:{}
2. copy()
copy()函数用于浅复制(Shallow copy)一个字典。浅复制是复制了原字典中的非可变对象(如字符串等),但没有复制可变对象(如列表等)。以下是一个例子:
person = {'name': 'Tom', 'age': 20, 'gender': 'male', 'interests': ['reading', 'drawing']}
new_person = person.copy()
new_person['name'] = 'Jerry'
new_person['interests'].append('running')
print(person)
print(new_person)
输出结果为:
{'name': 'Tom', 'age': 20, 'gender': 'male', 'interests': ['reading', 'drawing', 'running']}
{'name': 'Jerry', 'age': 20, 'gender': 'male', 'interests': ['reading', 'drawing', 'running']}
可以看到,修改new_person字典中的值,并没有影响原字典person的值,但修改new_person字典中的可变对象(列表),却同时改变了原字典中的这个可变对象。
3. fromkeys()
fromkeys()函数用于创建一个新字典,由指定的键和值组成。其中,键可以是任意可迭代对象(如列表、元组等),值默认为None,也可以指定其它值。例如:
keys = ['name', 'age', 'gender'] values = ['Tom', 20, 'male'] person = dict.fromkeys(keys, None) print(person) person = dict.fromkeys(keys, values) print(person)
输出结果为:
{'name': None, 'age': None, 'gender': None}
{'name': ['Tom', 20, 'male'], 'age': ['Tom', 20, 'male'], 'gender': ['Tom', 20, 'male']}
可以看到,当值为None时,所有键的值都为空,当值为可迭代对象时,所有键的值都相同,而不是按照索引对应。
4. get()
get()函数用于返回字典中指定键对应的值。该函数可以防止当键不存在时出现错误,而是返回一个默认值。例如:
person = {'name': 'Tom', 'age': 20, 'gender': 'male'}
print(person.get('name'))
print(person.get('hobby', []))
输出结果为:
Tom []
可以看到,当键存在时,get()函数返回对应的值,当键不存在时,get()函数返回一个默认值(这里是一个空列表)。
5. items()
items()函数用于以列表形式返回字典中所有键值对。例如:
person = {'name': 'Tom', 'age': 20, 'gender': 'male'}
print(person.items())
输出结果为:
dict_items([('name', 'Tom'), ('age', 20), ('gender', 'male')])
可以看到,items()函数将字典中所有键值对以元组的形式返回,这些元组组成了一个列表。
6. keys()
keys()函数用于以列表形式返回字典中所有的键。例如:
person = {'name': 'Tom', 'age': 20, 'gender': 'male'}
print(person.keys())
输出结果为:dict_keys(['name', 'age', 'gender'])
可以看到,keys()函数返回了一个列表,列表中包含了字典中所有的键。
7. pop()
pop()函数用于删除并返回字典中指定键对应的值。如果键不存在,可以指定一个默认值作为返回值。例如:
person = {'name': 'Tom', 'age': 20, 'gender': 'male'}
print(person.pop('age'))
print(person.pop('hobby', []))
输出结果为:
20 []
可以看到,pop()函数删除了'age'键对应的值,同时返回了这个值。当键不存在时,pop()函数返回一个默认值。
8. popitem()
popitem()函数用于随机删除并返回一个字典中的键值对。这个函数常用于删除最后一个键值对,因为字典是无序的。例如:
person = {'name': 'Tom', 'age': 20, 'gender': 'male'}
print(person.popitem())
print(person)
输出结果为:
('gender', 'male')
{'name': 'Tom', 'age': 20}
可以看到,popitem()函数随机删除了一个键值对,并返回该键值对。
9. setdefault()
setdefault()函数用于返回字典中指定键对应的值,如果键不存在,可以指定一个默认值作为返回值,并将该键值对加入字典中。例如:
person = {'name': 'Tom', 'age': 20, 'gender': 'male'}
print(person.setdefault('age', 25))
print(person.setdefault('hobby', []))
print(person)
输出结果为:
20
[]
{'name': 'Tom', 'age': 20, 'gender': 'male', 'hobby': []}
可以看到,当键存在时,setdefault()函数返回对应的值,当键不存在时,setdefault()函数返回一个默认值,并将指定键值对加入字典中。
10. update()
update()函数用于将一个字典的键值对更新到另一个字典中。如果键存在,则更新其对应的值;如果键不存在,则将该键值对添加到字典中。例如:
person = {'name': 'Tom', 'age': 20, 'gender': 'male'}
new_person = {'name': 'Jerry', 'interests': ['reading', 'drawing']}
person.update(new_person)
print(person)
输出结果为:
{'name': 'Jerry', 'age': 20, 'gender': 'male', 'interests': ['reading', 'drawing']}
可以看到,update()函数将new_person字典中的键值对更新到了person字典中,同时添加了一个新键值对'interests': ['reading', 'drawing']。
以上是Python中常用的一些字典函数,根据不同的需求,可以灵活运用它们来操作字典。
