如何使用函数将数字列表乘以2?(Python)

如何使用函数将数字列表乘以2?(Python),python,Python,我是一个初学者,想问一下如何使用for循环生成一个将列表乘以2的函数。我试图在其他地方找到答案,但没有成功。如果您想使用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 fo

我是一个初学者,想问一下如何使用for循环生成一个将列表乘以2的函数。我试图在其他地方找到答案,但没有成功。

如果您想使用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

最具吸引力的方式是使用列表理解:

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]
def双精度(lst):
返回[x*2表示lst中的x]
等效函数-它将匿名lambda函数映射到列表的每个元素上:

def双精度(lst):
返回列表(地图(lambda x:x*2,lst))
但您可以在for循环中这样做:

the_list = [1,2,3,4]

for index in range(len(the_list)):
    the_list[index] = the_list[index]*2
def双精度(lst):
新的_lst=lst
对于范围内的i(len(new_lst)):
新的_lst[i]*=2
返回新的\u lst

您可以使用列表理解:

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]

下面是使用
for循环

def multi():
    o=[]
    for i in a:
        b=i*2
        o.append(b)
    print(o)

a=[1,2,3,4]
multi()

你要求一个函数。您可以使用
def
语句来定义函数。在函数中,您可以使用
范围
循环索引,并使用
*=
将每个索引处的现有值乘以指定的数字

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
中看到更新的值,因为它指向同一个列表。

您应该了解列表理解。看起来每个人都在为您提供for循环解决方案。您是想了解如何创建一个函数,还是仅仅是将列表中的值乘以2并打印出来的逻辑?你在找什么?Joe ferndz,很抱歉没有看到评论,但我在找一个函数。他要求的是一个函数,而不仅仅是for循环。虽然这些都是很好的答案,我想他是在问如何创建一个函数。我现在把它改成了一个函数,而不仅仅是一个表达式。与tk的回答相同的问题-它更像是表明列表理解只是for循环的一个替代实现,当一个创建一个新列表,另一个进行就地修改时,这个问题有两种可能的解释-创建一个新列表或进行就地修改。我不认为这个问题是明确的,但选择一个和国家,你已经选择。您的选项显示为等效选项,但在此处执行不同的操作。当您进行就地修改时,最好返回
None
(比较
list.sort
),因为修改列表并返回它可能会导致对其功能的混淆。@alaniwi您的观点很好。我现在已更正它以创建一个新列表。谢谢你的建议。