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,并且必须稍后在代码中添加.我想将函数的输出直接附加到两个数组.这甚至可能吗?
谢谢你的帮助.我希望我这样做是正确的,因为这是我的第一篇文章.你们已经对编程问题给了我相当多的帮助.
更新:我想根据下面的回答,不可能直接这样做.感谢大家的帮助,找到了实现目标的其他方法.
如何使用辅助函数?
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_array和two_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.
假设我理解正确,您需要在声明函数之前定义数组。
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)