python - 使用理解列表按索引选择具有重复项的项目
问题描述
尝试通过循环遍历它们并按索引选择它们来通过另一个索引列表从列表中选择项目,但结果是缺少重复项。
例子。
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
在迭代中使用 enumerate
推荐阅读
- r - 如何使用 R 中的特定词典对语料库进行词形还原?”
- c++ - 有人可以解释为什么程序显示 6 和 4 吗?
- c++ - 为什么不能从 QVector 将项目添加到 QGraphicsScene
? - android - 尝试在空对象引用 getDouble 上调用虚拟方法“double java.lang.Double.doubleValue()”
- reactjs - 设置 twitter 按钮返回 [object Object] 而不是值
- java - 我在这里做错了什么,我该如何纠正?
- python - 将 Gmail 转换为 PDF:HTML 中的嵌入图像
- dart - How to fix cropped shadow in a Horizontal List View in Flutter
- websocket - Julia websockets - 什么是读保护和写保护?
- sql - SQL 到字符串的不同部分 - Oracle SQL