第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python根據(jù)for循環(huán)(或其他合適的方法)更改列表的值

python根據(jù)for循環(huán)(或其他合適的方法)更改列表的值

ibeautiful 2022-07-26 11:02:49
如果輸入低于 0,我需要將列表的值更改為 0,如果輸入高于 255,則將其更改為 255。即如果列表為 [265,45,-23],我需要將其更改為 [255 ,45,0]。試圖弄清楚幾個小時,但放棄了一點(初始輸入是一個元組)。到目前為止,這是我的代碼,但我不知道應(yīng)該使用哪種邏輯:   def rgb(r, g, b):    x = (r,g,b)    x = list(x)    for i in x:        if i<0:            x=0        if i>255:            x=255    print(x)
查看完整描述

5 回答

?
一只名叫tom的貓

TA貢獻1906條經(jīng)驗 獲得超3個贊

您可以使用列表推導(dǎo)在一行中執(zhí)行此操作:


def rgb(r,g,b): return [min(255,max(0,n)) for n in (r,g,b)]

輸出:


rgb(265,45,-23) 


[255, 45, 0]


查看完整回答
反對 回復(fù) 2022-07-26
?
明月笑刀無情

TA貢獻1828條經(jīng)驗 獲得超4個贊

你不需要元組。嘗試這個:


def rgb(r, g, b):

    x = [r,g,b]

    for i in range(len(x)):

        if x[i] < 0:

            x[i] = 0

        if x[i] > 255:

            x[i] = 255

    return x

# Output: [255, 45, 0]


查看完整回答
反對 回復(fù) 2022-07-26
?
一只萌萌小番薯

TA貢獻1795條經(jīng)驗 獲得超7個贊

當(dāng)您分配給x您時,您將用新值替換整個變量,而不僅僅是迭代的當(dāng)前元素。


您可以使用enumerate()一起獲取列表索引和值,并在賦值中使用索引。


for i, val in enumerate(x):

    if val < 0:

        x[i] = 0

    elif val > 255:

        x[i] = 255

您還可以使用列表推導(dǎo):


x = [min(255, max(0, val)) for val in x]


查看完整回答
反對 回復(fù) 2022-07-26
?
侃侃無極

TA貢獻2051條經(jīng)驗 獲得超10個贊

您可以使用列表推導(dǎo)來遍歷r,g和b. 同時創(chuàng)建一個測試條件的新列表。


def rgb(r, g, b):

    return [0 if x < 0 else 255 if x > 255 else x for x in (r,g,b)]

你可以這樣稱呼它:


print(rgb(265,45,-23))

或喜歡:


x = [265,45,-23]

print(rgb(*x))


查看完整回答
反對 回復(fù) 2022-07-26
?
HUWWW

TA貢獻1874條經(jīng)驗 獲得超12個贊

您可以max(0, min(255, x))用于列表元素x。然后對于整個列表,您可以使用列表推導(dǎo):

x = [max(0, min(255, y)) for y in x]

或者,您可以使用三元運算符:

x = [255 if y > 255 else (0 if y < 0 else y) for y in x]


查看完整回答
反對 回復(fù) 2022-07-26
  • 5 回答
  • 0 關(guān)注
  • 250 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號