Python 中的索引列表

问题描述 投票:0回答:1

我需要在Python中创建一个列表来收集大量人员的各种信息(姓名、出生日期、身份证号码、电子邮件地址、地址、电话号码......)。

我想将所有内容存储在一个列表中,其中每个人都有一个从 0 开始并递增的索引“i”。目标是通过简单地使用索引“i”和缩写来指示要检索的有关该人的信息类型(姓名、ID、电话、地址、电子邮件等)来检索有关该人的特定信息。

如何定义它以及如何访问给定人员的特定元素?

我之前在 Fortran 中使用派生数据类型完成了此操作,其中我使用以下内容来检索给定人员的各种元素:

list(i)%name

list(i)%id

list(i)%tel

list(i)%addr

list(i)%email

我无法在列表中定义信息类型(名称、ID、电子邮件、地址、电话...)以将其用于索引。

python list indexing deriveddata
1个回答
0
投票

您可以使用字典列表,这是最简单的:

people = [
  {"name": "John", "tel": "123"},
  {"name": "Lottie", "tel": "456"},
]

while True:
    q = input(f"Enter index (0..{len(people) - 1}) + field:")
    if not q:
        break
    idx_str, field = q.split(None, 1)
    try:
        idx = int(idx_str)
    except ValueError:
        print("Invalid index (not a number)")
        continue
    try:
        person = people[idx]
    except IndexError:
        print("Invalid index (no such person)")
        continue
    print(person.get(field, "No such field"))
Enter index (0..1) + field:1 tel
456
Enter index (0..1) + field:1 name
Lottie
Enter index (0..1) + field:0 name
John
Enter index (0..1) + field:0 address
No such field
Enter index (0..1) + field:4 address
Invalid index (no such person)
Enter index (0..1) + field:foo foo
Invalid index (not a number)
Enter index (0..1) + field:
© www.soinside.com 2019 - 2024. All rights reserved.