2017-10-06 95 views

回答

2

我會使用all()函數與generator expression作爲其參數。如果每個sublist[0] == nlist[0][0]

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

總之,all()將返回True在原始列表中的每個子表。如果有任何項目不等於nlist[0][0],它將返回False

+0

我不熟悉all()函數。這工作完美。將在十分鐘內接受。謝謝。 – 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)