Python - 将多个值从函数返回到不同的数组

ruf*_*der 6 python arrays function

我有一个函数,我返回两个值.我想将这两个值直接放入两个不同的数组中.我知道如何将输出作为两个不同的值返回以便稍后添加到数组中,但我不想拥有临时占位符.一个例子如下所示.

def two_outputs():
    output_one = 5
    output_two = 6
    return output_one, output_two

one_array = []        # initialize array
two_array = []        # initialize array

a, b = two_outputs()  # get values

one_array.append(a)   # store first value in first array
two_array.append(b)   # store second value in first array
Run Code Online (Sandbox Code Playgroud)

理想情况下,我不想使用a和b,并且必须稍后在代码中添加.我想将函数的输出直接附加到两个数组.这甚至可能吗?

谢谢你的帮助.我希望我这样做是正确的,因为这是我的第一篇文章.你们已经对编程问题给了我相当多的帮助.

更新:我想根据下面的回答,不可能直接这样做.感谢大家的帮助,找到了实现目标的其他方法.

dhg*_*dhg 5

如何使用辅助函数?

def zippend(lists, values):
  assert len(lists) == len(values)
  for l,v in zip(lists, values):
    l.append(v)

zippend((one_array, two_array), two_outputs())
Run Code Online (Sandbox Code Playgroud)

该函数zippend有两个参数.第一个是可迭代的Lists(你所指的"数组"实际上List是在python中).第二个是要附加到这些列表的可迭代值.

只要列表的数量与值的数量匹配(每个列表一个值),它就可以使用任意数量的列表和值.

编辑:如果two_outputs()是返回的元组Lists到串接到one_arraytwo_array,然后你可以改变函数的使用extend,而不是append:

def zextend(lists, values):
  assert len(lists) == len(values)
  for l,v in zip(lists, values):
    l.extend(v)
Run Code Online (Sandbox Code Playgroud)

或者,如果你真的想要,你可以使用一个if-statement的函数来检查它获取和append编辑的值是什么类型extend.

  • 我建议使用"zippend"这个名字. (2认同)

Rob*_*obB 1

假设我理解正确,您需要在声明函数之前定义数组。

one_array, two_array = [], []

def two_outputs():
    one_array.append(5)
    two_array.append(6)

#call function
two_outputs()

print one_array, two_array
#[5] [6]
Run Code Online (Sandbox Code Playgroud)