python - 使用 Python 将元组列表转换为嵌套列表

标签 python list nested tuples

我想使用 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/

相关文章:

python - 在 Pandas 中创建通用 header 字段

python - 重定向 URL 在 azure 上不匹配

Python3.8 `all()` 不短路

python - 比较 Python 中不同数量的列表

python - python中嵌套列表的递归问题

Javascript 访问嵌套元素

python - 如何过滤域数据python opnerp 7?

c# - 使用 LINQ 获取嵌套列表的计数列表

python - 在 Python 中初始化一个固定大小的数组

java - 在 JSON 中嵌套太深...我应该切换到 XML 吗?