0
如果第一個元素使用下面的代碼具有相同的第二個元素,我已經設法將第一個元素分組到列表中。有沒有更好的方式來做到這一點。在列表Python中對相同的元素進行分組
注意:總是有兩個相同的第二個元素。
lst = [
[1, '200309060143'],
[2, '200309060143'],
[3, '200309060143'],
[4, '200309060143'],
[5, '200309060143'],
[6, '200309060143'],
[7, '200309060143'],
[8, '200309060143'],
[1, '200309060144'],
[2, '200309060144'],
[3, '200309060144'],
[1, '200309060145'],
[2, '200309060145'],
[1, '200401100047'],
[2, '200401100047'],
[3, '200401100047']
]
mega_lst = []
temp_lst = []
for i in range(len(lst)):
if i == (len(lst)-1):
break;
else:
if lst[i][1] == lst[i + 1][1]:
temp_lst.append(lst[i][0])
if i == (len(lst)-2):
temp_lst.append(lst[len(lst)-1][0])
mega_lst.append(temp_lst)
else:
temp_lst.append(lst[i][0])
mega_lst.append(temp_lst)
temp_lst = []
print mega_lst
我的代碼結果:[[1,2,3,4,5,6,7,8],[1,2,3],[1,2],[1,2,3 ]]
預期結果:[[1,2,3,4,5,6,7,8],[1,2,3],[1,2],[1,2,3]]
一個公正的筆記 - 這隻有在列表按您想要分組的項目排序時纔有效。 '[(1,'a'),(3,'b'),(2,'a')]'不會給出[[1,2],[3]]'而是[[1], [2],[3]]'! – 2015-02-12 04:25:29