Python 字典(dict)新增数据方案

在Python中,字典(dict)是一种非常灵活的数据结构,用于存储键值对。本方案将通过一个具体问题——管理一个图书馆的图书借阅系统——来展示如何使用Python字典来新增数据。

问题描述

假设我们有一个图书馆,需要跟踪每本书的借阅情况。每本书都有一个唯一的ISBN编号,我们需要记录每本书的书名、作者、借阅状态(是否被借出)以及借阅者的名字。

数据结构设计

首先,我们需要设计一个合适的数据结构来存储这些信息。我们可以使用一个字典来存储每本书的信息,其中键是ISBN编号,值是另一个字典,包含书名、作者、借阅状态和借阅者的名字。

book_info int ISBN PK ISBN string title 书名 string author 作者 bool is_borrowed 借阅状态 string borrower 借阅者

Python 字典实现

接下来,我们将使用Python来实现这个数据结构,并展示如何新增数据。

初始化图书数据

首先,我们初始化一个空的字典来存储图书信息。

library = {}
  • 1.
新增图书数据

定义一个函数来添加新的图书到我们的图书馆字典中。

def add_book(isbn, title, author, is_borrowed=False, borrower=None):
    if isbn in library:
        print("Error: ISBN already exists.")
        return
    library[isbn] = {
        'title': title,
        'author': author,
        'is_borrowed': is_borrowed,
        'borrower': borrower
    }
    print(f"Book '{title}' added successfully.")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
借阅图书

定义一个函数来处理图书的借阅。

def borrow_book(isbn, borrower):
    if isbn not in library:
        print("Error: ISBN does not exist.")
        return
    if library[isbn]['is_borrowed']:
        print("Error: Book is already borrowed.")
        return
    library[isbn]['is_borrowed'] = True
    library[isbn]['borrower'] = borrower
    print(f"Book '{library[isbn]['title']}' has been borrowed by {borrower}.")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
归还图书

定义一个函数来处理图书的归还。

def return_book(isbn):
    if isbn not in library:
        print("Error: ISBN does not exist.")
        return
    if not library[isbn]['is_borrowed']:
        print("Error: Book is not borrowed.")
        return
    library[isbn]['is_borrowed'] = False
    library[isbn]['borrower'] = None
    print(f"Book '{library[isbn]['title']}' has been returned.")
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

状态图

以下是图书借阅状态的转换图。

Book added Book borrowed Book returned Available Borrowed

示例

现在,我们将使用上述函数来管理图书的借阅。

# 添加图书
add_book(123456789, "Python Programming", "John Doe")
add_book(987654321, "Data Structures", "Jane Smith")

# 借阅图书
borrow_book(123456789, "Alice")

# 尝试借阅已被借出的图书
borrow_book(123456789, "Bob")

# 归还图书
return_book(123456789)

# 检查图书状态
print(library)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

结论

通过本方案,我们展示了如何使用Python字典来管理一个简单的图书借阅系统。我们定义了添加图书、借阅图书和归还图书的功能,并使用状态图来描述图书的借阅状态转换。这种方法不仅适用于图书管理,也可以扩展到其他需要跟踪状态的场景。