【问题标题】:Python list filter [duplicate]Python列表过滤器[重复]
【发布时间】:2019-02-18 16:19:35
【问题描述】:

我有一个清单

vals=[3.0, 3.03, 3.06, 3.09, 3.12, 3.15, 3.18, 3.21, 3.24, 3.27, 3.3, 3.33, 3.36, 3.39, 3.42, 3.45, 3.48, 3.51, 3.54, 3.57, 4.0, 4.03, 4.06, 4.09, 4.12, 4.15, 4.18, 4.21, 4.24, 4.27, 4.3, 4.33, 4.36, 4.39, 4.42, 4.45, 4.48, 4.51, 4.54, 4.57, 4.6, 5.0, 5.03, 5.06, 5.09, 5.12, 5.15, 5.18, 5.21, 5.24, 5.27, 5.3, 5.33, 5.36, 5.39, 5.42, 5.45, 5.48, 5.51, 5.54, 5.57, 5.6, 6.0, 6.03]

我需要过滤列表并需要删除所有大于或等于 .6 的小数点值

如何过滤它?任何帮助,将不胜感激 。谢谢!

我以某种方式完成了它,但所有值都没有被删除,有些仍然存在

for i in vals:
        hour, minute = divmod(i, 1)
        print(minute)
        if minute >= .6:
            vals.remove(i)

【问题讨论】:

  • 不要修改您正在迭代的列表。
  • 显示一个您希望列表在处理后的样子的示例。从您的示例列表的外观来看,所有内容都将被删除,因为每个元素都 > 0.6。
  • 我不认为它是重复的 - 至少链接的重复不会帮助这里的 OP。

标签: python


【解决方案1】:

您可以执行以下操作

vals = [number for number in vals if ((number%1) <0.6)]

【讨论】:

    猜你喜欢
    • 2012-12-12
    • 2018-01-29
    • 1970-01-01
    • 2016-10-23
    • 2020-06-18
    • 1970-01-01
    • 2015-01-06
    • 1970-01-01
    • 2013-08-15
    相关资源
    最近更新 更多