Python映射类型之dict详解
什么是dict?
dict
是Python中的一个映射类型,它可以存储一组无序的键值对(key-value),其中键(key)必须是不可变的类型(比如字符串、数字、元组),而值(value)可以是任意类型。
dict的基本操作
创建一个空的dict
my_dict = {}
或者使用dict()
函数:
my_dict = dict()
添加键值对
my_dict['name'] = 'John'
my_dict['age'] = 30
也可以使用update()
方法添加多个键值对:
my_dict.update({'address': '123 Main St', 'phone': '555-1234'})
删除键值对
使用del
关键字可以删除某个键值对:
del my_dict['name']
也可以使用pop()
方法,它会返回被删除的值:
age = my_dict.pop('age')
获取键值对
可以使用[]
运算符来获取某个键对应的值:
print(my_dict['name'])
但是如果该键不存在,则会抛出KeyError
异常。为了避免这种情况,可以使用get()
方法:
print(my_dict.get('name', 'default_value'))
这个方法可以指定当该键不存在时所返回的默认值。
判断是否存在某个键
可以使用in
关键字来判断是否存在某个键:
if 'name' in my_dict:
print('Name is in the dictionary')
dict的常用方法
clear()
清空所有键值对:
my_dict.clear()
copy()
复制一个副本:
my_dict_copy = my_dict.copy()
keys()
返回所有键的列表:
keys = my_dict.keys()
如果要得到一个可迭代对象而不是列表,可以使用iterkeys()
方法(Python 2.x)或keys()
方法(Python 3.x)。
values()
返回所有值的列表:
values = my_dict.values()
同样,如果要得到一个可迭代对象而不是列表,可以使用itervalues()
方法(Python 2.x)或values()
方法(Python 3.x)。
items()
返回所有键值对的列表:
items = my_dict.items()
同样,如果要得到一个可迭代对象而不是列表,可以使用iteritems()
方法(Python 2.x)或items()
方法(Python 3.x)。
len()
返回键值对的数量:
print(len(my_dict))
示例说明
统计单词出现的次数
text = 'This is a test of the emergency broadcast system. This is only a test.'
words = text.split()
word_count = {}
for word in words:
if word not in word_count:
word_count[word] = 1
else:
word_count[word] += 1
print(word_count)
输出:
{'This': 2, 'is': 2, 'a': 2, 'test': 2, 'of': 1, 'the': 1, 'emergency': 1, 'broadcast': 1, 'system.': 1, 'only': 1}
创建一个简单的数据库
database = {
'Jenna': {'age': 25, 'salary': 50000},
'Tom': {'age': 32, 'salary': 70000},
'Nina': {'age': 19, 'salary': 30000}
}
def print_info(name):
info = database.get(name)
if info:
print(f"{name}'s age is {info['age']} and salary is ${info['salary']}.")
else:
print(f"{name} is not in the database.")
print_info('Jenna')
print_info('Bob')
输出:
Jenna's age is 25 and salary is $50000.
Bob is not in the database.
以上就是使用dict的基本操作和常用方法,以及两个示例的详细说明。