gpt4 book ai didi

python - 使用多个元组管理多个列表

转载 作者:太空宇宙 更新时间:2023-11-04 10:08:01 25 4
gpt4 key购买 nike

我有大约 2000 行数据,格式如下:

.
.
[(0, 1, 'Blank', ''), (0, 3, 'NAME', 'Ayiesha Woods'), (5, 10, 'DOB', 'July 2 , 1979'), (10, 13, 'LOC', 'Long Island'), (13, 16, 'LOC', 'New York')]
[(0, 1, 'Blank', ''), (0, 3, 'NAME', 'Craig Rivera'), (7, 12, 'DOB', 'October 10 , 1954'), (5, 7, 'LOC', 'Manhattan')]
[(0, 1, 'Blank', ''), (0, 4, 'NAME', 'Margery Pitt Durant'), (14, 16, 'LOC', 'Flint'), (6, 11, 'DOB', 'May 24 , 1887'), (16, 18, 'LOC', 'Michigan')]
[(0, 1, 'Blank', ''), (0, 3, 'NAME', 'Austin Watson'), (10, 13, 'LOC', 'Ann Arbor'), (13, 15, 'LOC', 'Michigan'), (4, 9, 'DOB', 'January 13 , 1992')]
[(0, 1, 'Blank', ''), (0, 3, 'NAME', 'Gary Spatz'), (5, 8, 'LOC', 'New York'), (16, 19, 'LOC', 'New York'), (19, 21, 'LOC', 'Miami'), (21, 23, 'LOC', 'Florida'), (8, 13, 'DOB', 'April 1 , 1951')]
.
.
.

它们基本上是许多列表,每个列表都在各自的元组中包含姓名、出生日期、位置等人的详细信息。

我想按照以下格式提取所有人的姓名及其对应的dob:

('Ayiesha Woods', 'DateOfBirth', 'July 2 , 1979')
('Craig Rivera', 'DateOfBirth', 'October 10 , 1954')

等等..

这是我的尝试:

temp = "DateOFBirth"
results = []

for n1 in text:
for n2 in text:
if n1 is not n2:
if text[1][2] == 'NAME' and text[2][2] == 'DOB':
rel = text[1][3], temp, text[2][3]
print(rel)
results.append(rel)

仅当名称元组位于列表中的位置 1 且日期元组位于列表中的位置 2 时才会输出,但情况并非总是如此。

如果我想输出结果而不考虑名称元组或日期元组在列表中的位置,我该怎么办。

编辑:

我有一个包含如下元组的列表:

text = [(0, 1, 'Blank', ''), (0, 3, 'NAME', 'Vance Trimble'), (5, 7, 'LOC', 'Harrison'), (7, 9, 'LOC', 'Arkansas'), (9, 14, 'DOB', 'July 6 , 1913')]

我希望以下列格式提取数据:

('Vance Trimble', 'DateOFBirth', 'July 6 , 1913')

我的代码:

temp = "DateOFBirth"
if text[1][2] == 'NAME' and text[4][2] == 'DOB':
rel = text[1][3], temp, text[4][3]
print(rel)

我该怎么做而不必像这样硬编码:

text[1][2] == 'NAME' and text[4][2] == 'DOB'

以便它自己在列表中搜索“NAME”和“DOB”并获取输出。

最佳答案

将问题分解为简单的步骤:

  1. 遍历记录列表。
  2. 每条记录由一个元组列表组成,顺序有些随意。
  3. 查看记录(循环)中的每个元组以查找 NAME 和 DOB。
  4. 找到后,将元组中的所需数据添加到结果中。

中提琴!

results = []
for rec in records:
result = ["", "DateOfBirth", ""]
for item in rec:
if "NAME" in item:
result[0] = item[3]
elif "DOB" in item:
result[2] = item[3]
results.append(tuple(result))
print(results)

关于python - 使用多个元组管理多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39921863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com