我知道我已经看过关于正确方法的干净示例,甚至可以发誓它在标准 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/