首页 > 解决方案 > 将值附加到列表列表

问题描述

这是我要实现的目标的模拟示例:

我最初有一个大小为 5 的空列表列表:

l = [[] for _ in range(5)]

然后,在进行 4 次迭代的 for 循环中,我有一个返回索引列表的函数。我想将“t”附加到具有这些索引的列表中。

就像是:

for t in range(4):
    idx = function_that_gives_indexes()
    l[idx].append(t)

假设function_that_gives_indexes(),为每个循环提供这些值:[1], [2, 4], [] and [0, 1]。我想l成为:

l = [[3], [0, 3], [1], [], [1]]

这样做的最pythonic方式是什么?

标签: pythonlistappend

解决方案


由于您的函数每次都返回一个列表,因此您更正的代码片段类似于

for t in range(4):
    for idx in function_that_gives_indexes():
        l[idx].append(t)

尝试使它更 Pythonic 看起来并不乐观。


推荐阅读