如果我有一個像
list=[1 ,22, 4 ,18, 42]
如何為每個包含 2 的數字加 1?所以在這種情況下,輸出將是
[1 ,23, 4 ,18, 43]
有沒有辦法通過檢查串列中的每個數字是否包含 2 來做到這一點?
uj5u.com熱心網友回復:
您可以檢查'2'在str每個號碼再加上一個象下面這樣:
(最好不要使用built-in functionlikelist作為變數名)
>>> lst1 = [1 ,22, 4 ,18, 42]
>>> [item 1 if '2' in str(item) else item for item in lst1]
[1, 23, 4, 18, 43]
感謝@user2390182 的簡短版本:
>>> [item ("2" in str(item)) for item in lst1]
[1, 23, 4, 18, 43] # <-> [1 0 , 22 1, 4 0, 18 0, 42 1]
# for more explanation
>>> [("2" in str(item)) for item in lst1]
[False, True, False, False, True] # <-> [0,1,0,0,1]
uj5u.com熱心網友回復:
list = [1,22,4,18,42]
for i in range(len(list)):
if '2' in str(list[i]):
list[i] =1
在 for 回圈中。選中“2”并添加一個。
uj5u.com熱心網友回復:
您可以撰寫一個函式,通過條件過濾數字并向其添加所需的值,您可以將其與map函式一起使用以遍歷串列。
def add_to_list(num):
if "2" in str(num):
return num 1
else:
return num
list_1 = [1 ,22, 4 ,18, 42]
new_list = list(map(add_to_list, list_1))
uj5u.com熱心網友回復:
您可以遍歷串列并將每個數字型別轉換為string. 這樣您就可以輕松地使用in運算子來檢查該字串中是否存在 2。
(我正在為更新的值創建一個新串列,因為我們可能需要一些其他任務的舊值,但我們也可以進行就地更新)
number_list = [1 ,22, 4 ,18, 42]
updated_list = []
for number in number_list:
if '2' in str(number):
updated_list.append(number 1)
else:
updated_list.append(number)
uj5u.com熱心網友回復:
使用回圈回圈遍歷串列并在for回圈if內添加條件。像這樣的東西:
if 2 in list_item:
list_item=list_item 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314357.html
