2017-10-06 6 views

답변

2

generator expression을 매개 변수로 사용하여 all() 함수를 사용합니다. 한마디로

all(sublist[0] == nlist[0][0] for sublist in nlist) 

, all()는 원래 목록의 모든 하위 목록에 대한 모든 sublist[0] == nlist[0][0] 경우 True를 반환합니다. 항목이 nlist[0][0]과 같지 않은 경우 False을 반환합니다.

+0

all() 함수에 익숙하지 않았습니다. 이것은 완벽하게 작동합니다. 10 분 안에 받아 들일 것입니다. 감사. – spiral01

3

당신은 각각의 하위 목록의 첫 번째 요소의 집합을 만들 수 있으며, 세트에는 반복이 없기 때문에 세트의 길이가 하나라면, 당신이 볼 수

nlist = [[2, 0, 4], [2, 0, 4], [0, 0, 4], [0, 0, 4]] 

result = len(set(l[0] for l in nlist)) == 1 
print(result) # => False 
0

모든 찾을 수 있습니다

>>> from itertools import groupby 
>>> nlist = [[2, 0, 4], [2, 0, 4], [0, 0, 4], [0, 0, 4]] 
>>> c= [i for i,k in groupby([n[0] for n in nlist])] 
>>> c 
[2, 0] 
>>> d=[[i for i, x in enumerate(nlist) if x[0]==j] for j in c] 
>>> d 
[[0, 1], [2, 3]] 
>>> R=dict(zip(c, d)) 
>>> R 
{0: [2, 3], 2: [0, 1]} 

각 가능한 첫 번째 값과 초기 목록에서 인덱스의 목록이있는 dict를 얻을 : 다음 고유의 첫 번째 요소와 인덱스를 확인합니다.

0
first_num = nlist[0][0] 
for sublist in nlist: 
    if first_num != sublist[0] 
     print(False) 
print(True)