检查列表的所有值是否小于某个数字,如果未将其设置为该数字

时间:2014-06-04 09:19:02

标签: python list

我在python中有一个列表,我想确保列表中的所有值都大于某个值。如果没有,那么我想将其设置为该值。

例如:让我们假设列表是

a = [1,2,3,4]

,要比较的值是3.所以我希望列表成为

a = [3,3,3,4]

我可以通过遍历列表中的所有元素来完成此操作。有没有更好的方法呢?

1 个答案:

答案 0 :(得分:4)

您可以使用简单的条件表达式和列表推导重建列表,例如

a = [1, 2, 3, 4]
print [item if item > 3 else 3 for item in a]
# [3, 3, 3, 4]

对于item中的每个a,它会检查它是否大于3,然后使用item,否则请使用3

这与以下相似但非常有效,

result = []
for item in a:
    if item > 3:
        result.append(item)
    else:
        result.append(3)

但请记住,列表理解会创建一个新列表。所以,你可能不得不这样做

a = [item if item > 3 else 3 for item in a]