我有以下嵌套列表:的Python:測試在列表嵌套某些指標的平等
nlist = [[2, 0, 4], [2, 0, 4], [0, 0, 4], [0, 0, 4]]
我想評估每個列表的第一個元素是否相等。我找到了評估整個嵌套列表是否相等但不是特定索引的方法?
我有以下嵌套列表:的Python:測試在列表嵌套某些指標的平等
nlist = [[2, 0, 4], [2, 0, 4], [0, 0, 4], [0, 0, 4]]
我想評估每個列表的第一個元素是否相等。我找到了評估整個嵌套列表是否相等但不是特定索引的方法?
我會使用all()
函數與generator expression作爲其參數。如果每個sublist[0] == nlist[0][0]
all(sublist[0] == nlist[0][0] for sublist in nlist)
總之,all()
將返回True
在原始列表中的每個子表。如果有任何項目不等於nlist[0][0]
,它將返回False
。
我不熟悉all()函數。這工作完美。將在十分鐘內接受。謝謝。 – spiral01
你可以做一個集中的每個子列表的第一要素,而由於在套不重複的,你可以看到,如果集的長度是:
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
,你可以找到所有獨特的第一個元素,然後檢查指標:
>>> 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
。
first_num = nlist[0][0]
for sublist in nlist:
if first_num != sublist[0]
print(False)
print(True)
'等於'什麼? – Ajax1234