Python 字典的使用详解及实例代码

  • Post category:Python

下面是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字典的使用方法。