尝试遍历索引并按索引选择它们,以从另一个索引列表的列表中选择项目,但结果是缺少重复项。
示例。
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]]
我尝试了普通循环而不是理解力,它可以工作。但是当我尝试获取一部分列表时不起作用。所以我想
答案 0 :(得分:1)
您想在理解中迭代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
一次
答案 1 :(得分:0)
尝试
[mainL[x] for x in indices]
输出:
[[2, 'a', 44], [2, 'a', 44], [2, 'a', 44]]