2016-10-08 1 views
1

내가 좋아하는 다른 유형의 튜플을 containg 목록을 가지고 :추출 튜플 값이

[(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 i in l: 
    if i[2] == 'PERSON': 
     m = list(i[3]) 

그러나 이것은 작동하지 않습니다.

+0

(X [1] [3], X [3] [3]) 및 (X [1] [3], X [5] [3])을 수행한다 .. –

답변

1

당신은 아마 이런 식으로 작업을 수행 할 수 있습니다 (내가 제대로 이해하고 두 번째 그 민족의 이름으로 튜플의 첫 번째 멤버를 원하는 경우) : 첫 번째 레코드 (0, 2, 'PERSON', 'Deraj') 항상 첫 번째 항목을 가지고 있다고 가정

l=[] 
for i in l: 
    if i[2]=='PERSON': 
     temp=i[3].split() 
     if len(temp)>1: 
     l.append((temp[1],i[3])) 
1

가족 수를 나타내는 두 번째 항목은 한 줄로 입력 할 수 있습니다.

print [ (entry[3].split()[1], entry[3]) 
     for entry in data 
     if (entry[2] == 'PERSON' and entry[0] > 0) ]