尝试通过遍历并按索引选择它们从另一个索引列表的列表中选择项目,但结果是缺少重复项。

例。

X = [[1, 'a', 33], [2, 'a', 44], [3, 'bb', 56]] #sample data
indices = [1,1,1]        #index with duplicates
[ x[-1] for i,x in enumerate(X) if i in indices]


我预计

[[2, 'a', 44], [2, 'a', 44], [2, 'a', 44]]


但我明白了

[[2, 'a', 44]]


我尝试了普通循环而不是理解力,它可以工作。但是当我尝试获取一部分列表时不起作用。所以我要

最佳答案

您想在理解中迭代indices并从X中选择该元素:

>>> X = [[1, 'a', 33], [2, 'a', 44], [3, 'bb', 56]]
>>> indices = [1,1,1]
>>> [X[i] for i in indices]
[[2, 'a', 44], [2, 'a', 44], [2, 'a', 44]]


在您的情况下,它不起作用,因为您i在带有枚举的迭代中将仅1一次

关于python - 使用理解列表通过带有重复项的索引选择项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55677209/

10-13 09:43