我在python中有一个列表,我想确保列表中的所有值都大于某个值。如果没有,那么我想将其设置为该值。
例如:让我们假设列表是
a = [1,2,3,4]
,要比较的值是3.所以我希望列表成为
a = [3,3,3,4]
我可以通过遍历列表中的所有元素来完成此操作。有没有更好的方法呢?
答案 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]