python - 迭代列表的列表,不返回子列表中的所有项目

标签 python iterator

我知道我已经看过关于正确方法的干净示例,甚至可以发誓它在标准 python 库之一中。我现在好像找不到了您能指出我正确的方向吗?

列表列表的迭代器,仅从子列表返回任意值。这个想法是将其放在列表理解中。

alist = [    [1,2,3,4,5],
             [2,4,6,8,10],
             [3,6,9,12,15]    ]

only_some_values = [list(x[2]]) for x in alist]

[[3],[6],[9]]

但是我很确定有一个函数可以做同样的事情,但是以迭代器的方式,从而摆脱了我在左侧的直接索引访问,并在 for 的右侧链接了一个额外的迭代器。也许这是一种嵌入式列表理解的形式,但我真的认为有一种更干净的方法(也许使用 imap?)。

最佳答案

也许您正在考虑itemgetter

>>> from operator import itemgetter
>>> map(itemgetter(2), alist)
[3, 6, 9]

但这不会将元素留在子列表中

only_some_values = [[x[2]] for x in alist]

给出您想要的输出

关于python - 迭代列表的列表,不返回子列表中的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16269396/

相关文章:

python - 使用像素数组设置 opencv 图像/numpy 数组值

loops - 你如何在 AppleScript 中循环访问菜单?

java - 遍历/更新 HashMap

c++ - 我可以为迭代器赋值吗?

memory - 在 Rust 中的 mem::replace

C++ 迭代器比较断言失败

确定当前元素是生成器的第一个元素还是最后一个元素的 Pythonic 方法?

python:在第一个条件变为假后运行第二个条件

python - 当我在 scikit learn 中提供自定义词汇表时,为什么不能为 CountVectorizer 指定最小频率?

python - 如何使用正则表达式从一个部分中查找选项值