将列表中的项映射到列表列表

2024-05-28 22:58:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

假设我有一个分组:

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)

任何提示都将不胜感激。你知道吗


Tags: 方法in名称列表fornamesresresult
2条回答

我想你可能想在g上循环,而不是names。没有理由在names上循环,因为您将使用值g对其进行索引。在这种情况下,简单的列表理解可能更适合:

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

您还可以使用maplambda来实现最终输出:

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

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

result = [map(lambda i: names[i], sub_list) for sub_list in g]
# Output: [['canine', 'dog'], ['feline']]

相关问题 更多 >

    热门问题