Python 将列表作为参数传递给另一个函数

Python 将列表作为参数传递给另一个函数,python,function,arguments,Python,Function,Arguments,创建一个列表并计算其总和 我在一个函数中创建了一个列表。我将该列表传递给一个名为v的变量。 在下一个函数中,我创建了一个函数来返回该列表的总和 def list_generator(list_size): v = [int(input('Digit number\n')) for i in range(0,list_size)] return v def list_sum(): return sum(v) list_size = int(input('Enter list siz

创建一个列表并计算其总和

我在一个函数中创建了一个列表。我将该列表传递给一个名为v的变量。 在下一个函数中,我创建了一个函数来返回该列表的总和

def list_generator(list_size):
  v = [int(input('Digit number\n')) for i in range(0,list_size)]
  return v

def list_sum():
  return sum(v)

list_size = int(input('Enter list size\n'))
v = list_generator(list_size)
print(list_generator(list_size))
print(list_sum())

#other code
def creat_list(list_size):
  v = [int(input('Digit number\n')) for i in range(0,list_size)]
  return v

def sum_list(v):
  return sum(v)

list_size = int(input('Digit list size\n'))
print(creat_list(list_size))
print(sum_list(v))

我的代码执行第一个函数两次。是否有任何方法可以将列表(v)传递给其他函数,以便程序按预期运行?

这是您想要的吗

def list_generator(list_size):
  v = [int(input('Digit number')) for i in range(0, list_size)]
  return v


def list_sum():
  return sum(v)


list_size = 3
v = list_generator(list_size)
print(v)
print(list_sum())

您只需将返回的结果存储在变量中,如下所示:

v = creat_list(list_size)
print(v)
print(sum_list(v))
v = list_generator(list_size)
请注意,
creat_list
中的
v
变量是函数的本地变量,一旦返回,它就不存在于函数外部

def list_generator(list_size):
  v = [int(input('Digit number\n')) for i in range(0,list_size)]
  return v
它返回您的列表,在本例中,您直接在print()函数中传递它,而不保存它以备将来使用

您可以选择将其保存在如下变量中:

v = creat_list(list_size)
print(v)
print(sum_list(v))
v = list_generator(list_size)
然后,您可以将
v
作为参数传递给您的
列表\u sum
fun:


您得到了错误
v
未在
list\u sum
中定义,因为v既不是该特定函数的已定义局部变量,也不是作为参数传递的

为什么不像对另一个函数那样将其作为参数添加
def list\u sum(v)
@Carcigenicate如果我这样做,它会出现错误,说我的变量v没有定义,这不会显示你的代码。这就是你的问题。
list\u generator
create\u list
之间没有区别。区别在于,您假设
create_list
设置了一个全局变量
sum_list
可以用来解析其自由变量
v
;没有。我删除了我的答案,因为这对网站来说太宽泛了。如果你查阅函数教程,你会发现很多关于使用参数在函数之间传递数据的解释。我不是这样做的吗?@Luín不,你在第二次尝试时从未将列表保存在
v
中。不,你在
create\u list
中的局部变量中赋值,正如我在问题上所评论的那样,
create_list
sum_list
之间的唯一区别在于如何使用(或不使用)返回值;这些功能本身是相同的。