下面是Python字典的使用详解及实例代码:
一、概述
Python字典是一种无序的数据类型,在其他编程语言中也被称为关联数组或哈希表。它们是由键(key)和对应的值(value)组成的,键必须是唯一的,但值可以是任何类型,如数字、字符串、元组等。字典在Python编程中非常常用,本篇攻略将详细讲解Python字典的各种使用方法。
二、创建字典
有很多种方法可以创建Python字典,下面是几个常用的方法:
1. 直接创建
可以通过大括号{}直接创建一个字典,键和值之间用冒号:分隔,每个键值对之间用逗号,分隔。
示例代码:
>>> dict1 = {'name': 'Alice', 'age': 25, 'gender': 'female'}
>>> print(dict1)
{'name': 'Alice', 'age': 25, 'gender': 'female'}
2. 使用dict()函数创建
可以使用dict()函数创建一个字典,传入可迭代的键值对序列。键值对可以是元组、列表或其他可迭代的对象。
示例代码:
>>> dict2 = dict([('name', 'Bob'), ('age', 30), ('gender', 'male')])
>>> print(dict2)
{'name': 'Bob', 'age': 30, 'gender': 'male'}
3. 使用zip()函数创建
可以使用zip()函数将两个可迭代的对象中的元素按顺序配对,并返回一个包含元组的列表,将它传入dict()函数中就可以创建字典。
示例代码:
>>> keys = ['name', 'age', 'gender']
>>> values = ['Charlie', 35, 'male']
>>> dict3 = dict(zip(keys, values))
>>> print(dict3)
{'name': 'Charlie', 'age': 35, 'gender': 'male'}
4. 使用推导式创建
可以使用字典推导式创建字典,其中for循环遍历一个可迭代的对象,将每个元素转换为键值对。
示例代码:
>>> dict4 = {i: i**2 for i in range(5)}
>>> print(dict4)
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
三、访问字典中的元素
可以使用键来访问字典中的元素,如果键不存在则会抛出KeyError异常,如果我们希望在键不存在时不抛出异常,可以使用get()方法。
示例代码:
>>> dict1 = {'name': 'Alice', 'age': 25, 'gender': 'female'}
>>> print(dict1['name'])
Alice
>>> print(dict1.get('age'))
25
>>> print(dict1.get('address', '未知'))
未知
四、修改字典中的元素
可以通过赋值语句修改字典中的元素,如果键不存在则会新增一个键值对。
示例代码:
>>> dict1 = {'name': 'Alice', 'age': 25, 'gender': 'female'}
>>> dict1['name'] = 'Bob'
>>> dict1['address'] = 'Shanghai'
>>> print(dict1)
{'name': 'Bob', 'age': 25, 'gender': 'female', 'address': 'Shanghai'}
五、删除字典中的元素
使用del语句可以删除字典中指定的键值对,如果键不存在则会抛出KeyError异常,可以使用pop()方法在删除的同时返回对应的值,如果字典为空则会抛出KeyError异常,可以使用popitem()方法随机删除一组键值对(Python 3.7以后的版本中默认删除最后一个键值对)。
示例代码:
>>> dict1 = {'name': 'Alice', 'age': 25, 'gender': 'female'}
>>> del dict1['age']
>>> print(dict1)
{'name': 'Alice', 'gender': 'female'}
>>> age = dict1.pop('age', '未知') # 如果字典中不存在'age'键,返回默认值'未知'
>>> print(age)
未知
>>> name, gender = dict1.popitem()
>>> print(name, gender)
gender female
六、遍历字典
可以使用for循环遍历字典,也可以使用items()方法同时获取键和值,keys()方法获取键,values()方法获取值。
示例代码:
>>> dict1 = {'name': 'Alice', 'age': 25, 'gender': 'female'}
>>> for key in dict1:
... print(key, dict1[key])
...
name Alice
age 25
gender female
>>> for key, value in dict1.items():
... print(key, value)
...
name Alice
age 25
gender female
>>> for key in dict1.keys():
... print(key)
...
name
age
gender
>>> for value in dict1.values():
... print(value)
...
Alice
25
female
七、常用方法
下面是Python字典常用的方法:
- clear():删除字典中的所有键值对
- copy():返回字典的一个副本
- fromkeys(seq[, val]):使用指定的键创建一个新字典,val为键对应的初始值,默认为None
- setdefault(key[, default]):如果字典中存在key键,则返回对应的值,否则插入一条新的键值对,值为default,默认为None
- update(dict2):将dict2中的键值对更新到当前字典中,如果键存在则覆盖,否则创建新的键值对
八、示例
以下是一个使用字典保存多个学生信息的例子,包括添加、修改、删除和查询等操作。
students = {}
def add_student():
name = input('请输入姓名:')
age = input('请输入年龄:')
gender = input('请输入性别:')
students[name] = {'age': age, 'gender': gender}
print('添加成功!')
def modify_student():
name = input('请输入要修改的学生姓名:')
if name in students:
age = input('请输入修改后的年龄:')
gender = input('请输入修改后的性别:')
students[name]['age'] = age
students[name]['gender'] = gender
print('修改成功!')
else:
print('找不到该学生!')
def delete_student():
name = input('请输入要删除的学生姓名:')
if name in students:
del students[name]
print('删除成功!')
else:
print('找不到该学生!')
def query_student():
name = input('请输入要查询的学生姓名:')
if name in students:
print(f'姓名:{name} 年龄:{students[name]["age"]} 性别:{students[name]["gender"]}')
else:
print('找不到该学生!')
while True:
print('请选择操作:')
print('1. 添加学生信息')
print('2. 修改学生信息')
print('3. 删除学生信息')
print('4. 查询学生信息')
print('5. 退出')
choice = input('请输入操作编号:')
if choice == '1':
add_student()
elif choice == '2':
modify_student()
elif choice == '3':
delete_student()
elif choice == '4':
query_student()
elif choice == '5':
break
else:
print('输入有误,请重新输入!')
以上就是Python字典的使用详解及实例代码,我希望你已经完全理解了Python字典的使用方法。