在 python 中基于列表理解的条件跳过元素

新手上路,请多包涵

我有一个列表列表:

 List = [-2,9,4,-6,7,0,1,-4]

对于列表中小于零 (0) 的数字,我想跳过这些数字并形成另一个列表。

例子:-

 List = [9,4,7,0,1]

这是我的一种疑惑,不确定是否可以实现。如果有可能实现,任何人都可以在这里发帖。

原文由 Vinodh Velumayil 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 525
2 个回答

你有很多选择来实现这一目标。通过 列表理解,您可以执行以下操作:

 my_list = [i for i in my_list if i >= 0]

随着 filter()

 my_list = filter(lambda i: i >= 0, my_list)

笔记:

在 Python 3 中, filter() 返回一个 filter 对象(不是 list ),你可以将它转换为列表:

 my_list = list(filter(lambda i: i >= 0, my_list))

原文由 ettanany 发布,翻译遵循 CC BY-SA 4.0 许可协议

首先对变量名使用小写,其次不要使用 list 因为它保留了名称。

然后在列表理解中做一个 if

 my_list = [i for i in init_list if i >= 0 ]

原文由 Saksow 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题