利用Python列表和字典实现简单的数据库

文摘   2024-11-12 08:15   江苏  

在今天的教程中,我们将学习如何使用 Python 的列表和字典来实现一个简单的数据库。通过这个过程,你会了解到如何存储、检索和操作数据。让我们一步步来,从基础到高级,确保每一个步骤都能轻松掌握。

1. 列表和字典的基础

首先,我们需要了解 Python 中的列表和字典是什么,以及它们的基本用法。

列表

列表是 Python 中的一种有序集合,可以存储多个项目。创建一个列表非常简单:

# 创建一个列表
my_list = [12345]
print(my_list)  # 输出: [1, 2, 3, 4, 5]

字典

字典是一种无序的键值对集合。每个键值对由一个键和一个值组成。创建一个字典也很简单:

# 创建一个字典
my_dict = {'name''Alice''age'25'city''New York'}
print(my_dict)  # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}

2. 使用列表和字典存储数据

假设我们要存储一些用户信息,包括用户名、年龄和城市。我们可以使用一个字典来表示每个用户,然后将这些字典存储在一个列表中。

# 创建一个用户字典
user1 = {'username''alice''age'25'city''New York'}
user2 = {'username''bob''age'30'city''Los Angeles'}

# 将用户字典存储在列表中
users = [user1, user2]

# 打印用户列表
print(users)
# 输出: [{'username': 'alice', 'age': 25, 'city': 'New York'}, {'username': 'bob', 'age': 30, 'city': 'Los Angeles'}]

3. 检索数据

现在我们已经存储了一些用户数据,接下来学习如何检索这些数据。

按索引检索

我们可以使用列表的索引来访问特定的用户:

# 获取第一个用户
first_user = users[0]
print(first_user)  # 输出: {'username': 'alice', 'age': 25, 'city': 'New York'}

按键检索

我们还可以使用字典的键来访问特定的信息:

# 获取第一个用户的年龄
first_user_age = first_user['age']
print(first_user_age)  # 输出: 25

4. 添加和删除数据

添加数据

我们可以使用 append 方法将新用户添加到列表中:

# 创建一个新的用户
new_user = {'username''charlie''age'22'city''Chicago'}

# 将新用户添加到列表中
users.append(new_user)

# 打印更新后的用户列表
print(users)
# 输出: [{'username': 'alice', 'age': 25, 'city': 'New York'}, {'username': 'bob', 'age': 30, 'city': 'Los Angeles'}, {'username': 'charlie', 'age': 22, 'city': 'Chicago'}]

删除数据

我们可以使用 remove 方法或 pop 方法来删除用户:

# 删除第一个用户
users.remove(user1)

# 打印更新后的用户列表
print(users)
# 输出: [{'username': 'bob', 'age': 30, 'city': 'Los Angeles'}, {'username': 'charlie', 'age': 22, 'city': 'Chicago'}]

5. 更新数据

我们可以直接修改字典中的值来更新用户信息:

# 更新第二个用户的年龄
users[1]['age'] = 23

# 打印更新后的用户列表
print(users)
# 输出: [{'username': 'bob', 'age': 23, 'city': 'Los Angeles'}, {'username': 'charlie', 'age': 22, 'city': 'Chicago'}]

6. 高级操作:查询和过滤

我们可以使用列表推导式和条件语句来查询和过滤数据。

查询特定城市的用户

# 查询所有住在 Los Angeles 的用户
los_angeles_users = [user for user in users if user['city'] == 'Los Angeles']

# 打印结果
print(los_angeles_users)
# 输出: [{'username': 'bob', 'age': 23, 'city': 'Los Angeles'}]

过滤年龄大于 22 的用户

# 过滤年龄大于 22 的用户
older_users = [user for user in users if user['age'] > 22]

# 打印结果
print(older_users)
# 输出: [{'username': 'bob', 'age': 23, 'city': 'Los Angeles'}]

7. 实战案例:用户管理系统

假设我们要实现一个简单的用户管理系统,支持添加、删除、更新和查询用户信息。

# 初始化用户列表
users = []

def add_user(username, age, city):
    """添加新用户"""
    new_user = {'username': username, 'age': age, 'city': city}
    users.append(new_user)
    print(f"用户 {username} 已添加")

def remove_user(username):
    """删除用户"""
    global users
    users = [user for user in users if user['username'] != username]
    print(f"用户 {username} 已删除")

def update_user(username, age=None, city=None):
    """更新用户信息"""
    for user in users:
        if user['username'] == username:
            if age is not None:
                user['age'] = age
            if city is not None:
                user['city'] = city
            print(f"用户 {username} 的信息已更新")
            return
    print(f"未找到用户 {username}")

def query_users(city=None, age=None):
    """查询用户"""
    if city and age:
        result = [user for user in users if user['city'] == city and user['age'] == age]
    elif city:
        result = [user for user in users if user['city'] == city]
    elif age:
        result = [user for user in users if user['age'] == age]
    else:
        result = users
    return result

# 测试用户管理系统的功能
add_user('alice'25'New York')
add_user('bob'30'Los Angeles')
add_user('charlie'22'Chicago')

print(query_users())  # 输出所有用户
print(query_users(city='Los Angeles'))  # 查询 Los Angeles 的用户
print(query_users(age=22))  # 查询年龄为 22 的用户

update_user('alice', age=26)
remove_user('bob')

print(query_users())  # 输出更新后的用户列表

总结

在本文中,我们学习了如何使用 Python 的列表和字典来实现一个简单的数据库。我们从基础的列表和字典创建开始,逐步介绍了如何存储、检索、添加、删除和更新数据。最后,我们通过一个实战案例实现了用户管理系统,展示了这些技术的实际应用。

好了,今天的分享就到这里了,我们下期见。如果本文对你有帮助,请动动你可爱的小手指点赞、转发、在看吧!

付费合集推荐

Python编程基础

Python办公自动化-Excel

微信公众号批量上传发布系统

文末福利

公众号消息窗口回复“编程资料”,获取Python编程、人工智能、爬虫等100+本精品电子书。

精品系统

微信公众号批量上传发布系统

关注我👇,精彩不再错过


手把手PythonAI编程
分享与人工智能和python编程语言相关的笔记和项目经历。
 最新文章