我有一个包含不同类型元组的列表,如:
[(0, 1, 'BLANK', ''), (0, 2, 'PERSON', 'Deraj'), (3, 8, 'DOB', 'April 27 , 1834'), (9, 11, 'PERSON', 'David Deraj'), (11, 13, 'LOC', 'Pennsylvania'), (16, 19, 'PERSON', 'Mary Deraj')]
我如何获得以下输出
('Deraj', 'David Deraj')
('Deraj', 'Mary Deraj')
我正在尝试使用for循环:
for i in l:
if i[2] == 'PERSON':
m = list(i[3])
但这不起作用。
答案 0 :(得分:1)
你可能会这样做(如果我理解正确,你想要第一个元组成员成为那些人的第二个名字):
l=[]
for i in l:
if i[2]=='PERSON':
temp=i[3].split()
if len(temp)>1:
l.append((temp[1],i[3]))
答案 1 :(得分:1)
假设第一个记录(0, 2, 'PERSON', 'Deraj')
始终是第一个项目零,第二个项目表示家庭成员的数量,您可以在一行中执行此操作。
print [ (entry[3].split()[1], entry[3])
for entry in data
if (entry[2] == 'PERSON' and entry[0] > 0) ]