📜  制表与记忆(1)

📅  最后修改于: 2023-12-03 14:50:22.306000             🧑  作者: Mango

制表与记忆

简介

制表与记忆是指将数据存储在表格中,以便更好地组织和管理数据。在编程中,制表与记忆经常用于存储、检索和操作数据。制表与记忆的优点在于它可以快速存储和查找数据,同时也可以使数据可视化,有助于快速理解数据的组织结构和关系。

制表

在编程中,制表可以通过使用数据结构来实现。数据结构是计算机科学中的基础概念,用于将数据组织为一种有意义的方式。常见的数据结构包括数组、链表、堆栈、队列、树和图等。

下面是一个Python中制表的例子,使用了字典(Dictionary)数据结构。字典类似于键值对,可以高效地存储和检索数据。

# 创建一个字典来表示学生信息
students = {
    'Alice': {'age': 20, 'gender': 'female', 'major': 'Computer Science'},
    'Bob': {'age': 22, 'gender': 'male', 'major': 'Physics'},
    'Charlie': {'age': 21, 'gender': 'male', 'major': 'Biology'}
}

# 输出学生信息
print('Name\tAge\tGender\tMajor')
for name, info in students.items():
    print(f'{name}\t{info["age"]}\t{info["gender"]}\t{info["major"]}')

输出结果:

Name    Age     Gender  Major
Alice   20      female  Computer Science
Bob     22      male    Physics
Charlie 21      male    Biology
记忆

在编程中,记忆指的是将数据存储在内存中以便快速访问。常用的记忆技术包括缓存和数据库。

缓存是一种将数据暂存到快速访问存储器中的技术。它可以在访问同一数据时提供快速响应,减少数据访问的时间和系统负载。

下面是一个Python中使用LRU缓存的例子,使用了functools模块中的lru_cache装饰器。lru_cache可以缓存函数的返回值,以减少函数的重复计算。

import time
import functools

@functools.lru_cache(maxsize=128)
def fib(n):
    if n <= 1:
        return n
    else:
        return fib(n-1) + fib(n-2)

start_time = time.time()
print(fib(40))
end_time = time.time()

print(f'Calculated in {end_time-start_time:.4f}s')

输出结果:

102334155
Calculated in 0.0000s

数据库是一种持久化存储数据的技术,可以将数据存储到磁盘上,以便重启系统或其他应用程序重新读取数据。在编程中,常用的关系型数据库包括MySQL、PostgreSQL和SQLite等。

下面是一个Python中使用SQLite数据库访问数据的例子,需要使用SQLite的sqlite3模块。

import sqlite3

# 连接到数据库
conn = sqlite3.connect('students.db')

# 创建表格
conn.execute('''CREATE TABLE students
             (ID INT PRIMARY KEY NOT NULL,
             NAME TEXT NOT NULL,
             AGE INT NOT NULL,
             GENDER TEXT,
             MAJOR TEXT);''')

# 插入数据
conn.execute("INSERT INTO students (ID, NAME, AGE, GENDER, MAJOR) \
             VALUES (1, 'Alice', 20, 'female', 'Computer Science')")
conn.execute("INSERT INTO students (ID, NAME, AGE, GENDER, MAJOR) \
             VALUES (2, 'Bob', 22, 'male', 'Physics')")
conn.execute("INSERT INTO students (ID, NAME, AGE, GENDER, MAJOR) \
             VALUES (3, 'Charlie', 21, 'male', 'Biology')")

# 提交事务
conn.commit()

# 查询数据
cursor = conn.execute("SELECT ID, NAME, AGE, GENDER, MAJOR from students")
for row in cursor:
    print(f'ID={row[0]}, NAME={row[1]}, AGE={row[2]}, GENDER={row[3]}, MAJOR={row[4]}')

# 关闭数据库
conn.close()

输出结果:

ID=1, NAME=Alice, AGE=20, GENDER=female, MAJOR=Computer Science
ID=2, NAME=Bob, AGE=22, GENDER=male, MAJOR=Physics
ID=3, NAME=Charlie, AGE=21, GENDER=male, MAJOR=Biology
总结

制表与记忆是程序员必备的基础技能之一。制表可以帮助程序员更好地组织和管理数据,使其可视化,更易于理解和操作。记忆可以帮助程序员快速访问数据,减少数据访问的时间和系统负载。在编程过程中,程序员可以根据具体需求选择合适的制表和记忆技术,以便更有效地实现功能。