【发布时间】:2018-10-16 10:48:16
【问题描述】:
我有一个元组列表:
start_list = [(A99, 2, 3 B1), (A21, 3, 4, B1), (A123, 4, 5, B2), (A22, 3 6, B2), (A12, 4, 6, B1)]
我想将具有相同最后一个元素的所有元组分组到以下形式的列表中:
result = [[B1, [A99, A21, A12]],[B2, [A123, A22]]]
我的尝试:
for idx in range(len(start_list)):
concat_list += [start_list[idx][0]]
for idx2 in range(idx+1, len(start_list)):
if start_list[idx][-1] == start_list[idx2][-1]:
concat_list += [start_list[idx2][0]]
grouped_list.append([start_list[idx][-1], concat_list])
concat_list = []
grouped_list = dict(((x[0]), x) for x in grouped_list).values()
它没有考虑所有元组,也没有将所有初始元素(A99,A123...)包含到相应的元组中。
【问题讨论】:
-
什么是
A99、B1?str对象? -
它们可能是,在我的真实情况下它们是花车,但如果我将它们粘贴到这里,那将是一团糟。
标签: python python-3.x list dictionary nested