python - 使用列表理解输出嵌套列表

标签 python list list-comprehension

我有以下列表:

 a = [[0,11], [1,12], [3,14], [5,16],[7,18]]

我想创建一个新列表b,它包含所有满足条件的元素

 a[:,0] > 3

并将索引添加到所选嵌套列表的 a 中。 所以 b 应该看起来像:

b = [[3, 5, 16],[4, 7,18]]

与:

b = [points, points in a if points[0]>3]

将输出带有索引的b = [[5, 16],[7,18]],并且

b = [[index, points], index, points in enumerate(a) if points[0]>3]

显示错误。如何使用列表理解生成 b

最佳答案

您可以使用一次性变量的元组来保存嵌套列表项:

>>> [[i,j,k] for i,(j,k) in enumerate(a) if j>3]
[[3, 5, 16], [4, 7, 18]]

或者作为包含更多项目的列表的更全面的方法,您可以使用以下列表理解:

>>> [[i] + points for i, points in enumerate(a) if points[0]>3]
[[3, 5, 16], [4, 7, 18]]

使用解包赋值的Python 3版本:

>>> [[i, first] + rest for i,(first, *rest) in enumerate(a) if first>3]
[[3, 5, 16], [4, 7, 18]]

关于python - 使用列表理解输出嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36206811/

相关文章:

python - list.extend 和列表理解

list - Haskell-循环列表的每个第二个元素

python - 在 Emacs 中编辑 Python

python - 导入 CSV 并在 Python 中分析

python - 根据value项获取key

R:显示多边形几何特征列表

python - 使用列表理解删除列表中的元素 - Python

python - 在python中从表转换为矩阵

python - 计算Python中另一个数据帧中每组数据帧中具有特定模式的元素数量

list - OrientDB - 如何更新记录中的列表条目