You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中实现类Fortran派生类型的人员信息索引存储与访问?

Python实现类似Fortran派生类型的人员信息存储方案

方法一:字典列表(快速上手)

直接用列表存储字典,每个字典对应一个人员的所有信息,键名对应你需要的信息缩写(name、id、tel等)。通过列表索引i定位人员,再通过字典键获取对应信息。

示例代码:

# 创建人员列表
people = [
    {"name": "张三", "id": "110101199001011234", "tel": "13800138000", "addr": "北京市朝阳区", "email": "zhangsan@example.com"},
    {"name": "李四", "id": "310101199505056789", "tel": "13900139000", "addr": "上海市浦东新区", "email": "lisi@example.com"}
]

# 访问第0个人员的姓名
print(people[0]["name"])
# 访问第1个人员的电话
print(people[1]["tel"])

方法二:自定义类(最接近Fortran派生类型体验)

定义一个Person类,将姓名、身份证号等信息作为类的属性。把每个人员的实例存入列表,就能通过list[i].属性名的方式访问,和Fortran的list(i)%属性名写法逻辑完全一致。

示例代码:

class Person:
    def __init__(self, name, id_card, tel, addr, email):
        self.name = name
        self.id = id_card  # 避免和内置id函数重名
        self.tel = tel
        self.addr = addr
        self.email = email

# 创建人员列表
people = [
    Person("张三", "110101199001011234", "13800138000", "北京市朝阳区", "zhangsan@example.com"),
    Person("李四", "310101199505056789", "13900139000", "上海市浦东新区", "lisi@example.com")
]

# 访问第0个人员的姓名
print(people[0].name)
# 访问第1个人员的身份证号
print(people[1].id)

方法三:dataclass(Python 3.7+,简洁高效)

使用Python标准库的dataclasses模块,无需手动编写__init__方法,就能快速定义结构化的人员类,用法和自定义类一致,代码更简洁。

示例代码:

from dataclasses import dataclass

@dataclass
class Person:
    name: str
    id: str
    tel: str
    addr: str
    email: str

# 创建人员列表
people = [
    Person("张三", "110101199001011234", "13800138000", "北京市朝阳区", "zhangsan@example.com"),
    Person("李四", "310101199505056789", "13900139000", "上海市浦东新区", "lisi@example.com")
]

# 访问第0个人员的邮箱
print(people[0].email)
# 访问第1个人员的地址
print(people[1].addr)

选择建议

  • 如果只是临时存储简单数据,字典列表足够用,无需额外定义类;
  • 如果需要更严谨的结构、类型约束,或者要给人员添加方法,优先用自定义类或dataclass,后者更适合纯数据存储的场景。

内容的提问来源于stack exchange,提问作者Oxlo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 19:52:15