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]
添加回答
举报