python - 将列表中的项目映射到列表列表

标签 python for-loop iteration

我正在考虑一种将列表中的名称映射到列表列表中的分组索引项的有效方法。

假设我有这样的分组:

g = [[0,1],[2]]

我也有这个列表:

names = ["canine", "dog", "feline"]

我想根据索引将映射的名称返回到分组:

result = [["canine","dog"], ["feline"]]

我不确定如何执行此操作,甚至不确定如何有效执行此操作。这是我目前所拥有的,但没有用。

final = []
for j in range(len(names)):
    for item in g:
        for inner in item:
            res = []
            if inner == j:
                res.append(names[inner])
        final.append(res)
print(final)

如有任何提示,我们将不胜感激。

最佳答案

我认为您可能希望遍历 g 而不是 names。没有理由遍历 names,因为您将使用值 g 对其进行索引。在那种情况下,简单的列表理解似乎更适合这种情况:

[[names[i] for i in sublist] for sublist in g]

关于python - 将列表中的项目映射到列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53808705/

相关文章:

algorithm - 遍历多个维度

python - 读取输入后隐藏控制台窗口

JavaScript For 循环如何工作?

for-loop - 为什么此代码卡住了并且不起作用(javascript)

c# - 迭代连通分量算法

javascript - 如何遍历所有 Unicode 字符?

python - 正则表达式排除特定模式python

python - 将复杂的curl命令翻译成python3

python - 在 Linux RHEL 上配置 Teradata 和 python 之间连接的正确方法

c - 关于 for 和 switch 的正确/错误