簡體   English   中英

檢查列表的所有值是否都小於某個數字(如果未將其設置為該數字)

[英]Check if all values of a list are less than a certain number, if not set it to that number

我在python中有一個列表,我想確保列表中的所有值都大於某個值。 如果不是,那么我想將其設置為該值。

例如:讓我們假設列表是

a = [1,2,3,4]

而要比較的值是3。所以我希望列表成為

a = [3,3,3,4]

我可以通過遍歷列表中的所有元素來做到這一點。 有更好的方法嗎?

您可以使用簡單的條件表達式和列表理解來重建列表,如下所示

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

對於每一個itema ,它會檢查是否它是大於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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM