5 回答

TA貢獻1934條經驗 獲得超2個贊
最 Pythonic 的方式是使用列表理解:
def double(lst):
return [x*2 for x in lst]
等效的是map函數——它將匿名 lambda 函數映射到列表的每個元素:
def double(lst):
return list(map(lambda x: x*2, lst))
但是您可以像這樣在 for 循環中執行此操作:
def double(lst):
for i in range(len(lst)):
lst[i] *= 2
return lst

TA貢獻1890條經驗 獲得超9個贊
如果你想使用 for 循環來做,你可以這樣做:
the_list = [1,2,3,4]
for index in range(len(the_list)):
the_list[index] = the_list[index]*2
但更優雅的是使用列表理解并根據需要使用函數:
def multiply_array(the_list):
new_list = [item*2 for item in the_list]
return new_list

TA貢獻1886條經驗 獲得超2個贊
你問了一個功能。您將使用def語句來定義函數。在函數內部,您將使用 遍歷索引range,并將*=每個索引處的現有值乘以指定的數字。
def double_it(your_list):
for index in range(len(your_list)):
your_list[index] *= 2
這將更新列表中的元素。如果有其他對該列表的引用,那么它們也將看到新值。例如,如果您有:
a = [1, 2, 3]
b = a
double_it(a)
print(b)
然后你也會看到更新后的值,b因為它指向同一個列表。

TA貢獻1804條經驗 獲得超2個贊
這是使用的解決方案for loop
def multi():
o=[]
for i in a:
b=i*2
o.append(b)
print(o)
a=[1,2,3,4]
multi()

TA貢獻1784條經驗 獲得超8個贊
您可以使用列表理解:
my_list = [1, 2, 3, 4, 5]
my_new_list = [num * 2 for num in my_list]
>>> print(my_new_list)
[2, 4, 6, 8, 10]
添加回答
舉報