从元组列表中提取元组值

时间:2016-10-08 06:11:27

标签: python list python-3.x tuples

我有一个包含不同类型元组的列表,如:

[(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])

但这不起作用。

2 个答案:

答案 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) ]