我想使用 Python 将元组列表转换为嵌套列表。我该怎么做?
我有一个排序的元组列表(按第二个值排序):
[(1, 5), (5, 4), (13, 3), (4, 3), (3, 2), (14, 1), (12, 1),
(10, 1), (9, 1), (8, 1), (7, 1), (6, 1), (2, 1)]
现在我希望它像这样(忽略第二个值并嵌套在列表中):
[ [1], [5], [13, 4], [3], [14, 12, 10, 9, 8, 7, 6, 2] ]
我在这里看到其他线程用 map
做这样的事情,但我不完全理解。任何人都可以提供有关执行此操作的“正确”python 方法的见解吗?
最佳答案
from operator import itemgetter
from itertools import groupby
lst = [(1, 5), (5, 4), (13, 3), (4, 3), (3, 2), (14, 1),
(12, 1), (10, 1), (9, 1), (8, 1), (7, 1), (6, 1), (2, 1)]
result = [[x for x, y in group]
for key, group in groupby(lst, key=itemgetter(1))]
groupby(lst, key=itemgetter(1))
生成 lst
的连续元素组,其中所有元素都具有相同的第一个(从零开始计数)项。 [x for x, y in group]
将每个元素的第 0 项保留在每个组中。
关于python - 使用 Python 将元组列表转换为嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1855471/