回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有大约2000行数据,格式如下:</p>
<pre><code>.
.
[(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')]
.
.
.
</code></pre>
<p>它们基本上是多个列表,每个列表都包含在各自的元组中的人名、dob、loc等详细信息。你知道吗</p>
<p>我想按以下格式提取所有人的姓名及其相应的出生日期:</p>
<pre><code>('Ayiesha Woods', 'DateOfBirth', 'July 2 , 1979')
('Craig Rivera', 'DateOfBirth', 'October 10 , 1954')
</code></pre>
<p>以此类推。。你知道吗</p>
<p>这是我的尝试:</p>
<pre><code>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)
</code></pre>
<p>仅当名称元组位于列表中的位置1,日期元组位于列表中的位置2时(情况并非总是如此)才会输出。你知道吗</p>
<p>如果我想输出结果而不考虑名称元组或日期元组在列表中的位置,我该怎么办。你知道吗</p>
<p>编辑:</p>
<p>我有一个包含元组的列表,比如:</p>
<pre><code>text = [(0, 1, 'Blank', ''), (0, 3, 'NAME', 'Vance Trimble'), (5, 7, 'LOC', 'Harrison'), (7, 9, 'LOC', 'Arkansas'), (9, 14, 'DOB', 'July 6 , 1913')]
</code></pre>
<p>我希望以以下格式提取数据:</p>
<pre><code>('Vance Trimble', 'DateOFBirth', 'July 6 , 1913')
</code></pre>
<p>我的代码:</p>
<pre><code>temp = "DateOFBirth"
if text[1][2] == 'NAME' and text[4][2] == 'DOB':
rel = text[1][3], temp, text[4][3]
print(rel)
</code></pre>
<p>我如何做到这一点而不必硬编码,如:</p>
<pre><code>text[1][2] == 'NAME' and text[4][2] == 'DOB'
</code></pre>
<p>以便它自己在列表中搜索'NAME'和'DOB',并获得输出。你知道吗</p>