Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 直接从返回的函数列表扩展列表_Python_List - Fatal编程技术网

Python 直接从返回的函数列表扩展列表

Python 直接从返回的函数列表扩展列表,python,list,Python,List,我希望将函数返回值的输出扩展到一组列表 def func(): return [-1,2],[4,1] f=[1,2] g=[3,4] f,g=func() #How make it append print f,g #Expected Output: [1,2,-1,2] [3,4,4,1] 对于一个列表,我可以执行f.extend(func())但是对于多个列表呢。 不建议创建临时变量。为什么不向函数传递两个参数 def func(l1 ,l2): return l1+[

我希望将函数返回值的输出扩展到一组列表

def func():
    return [-1,2],[4,1]
f=[1,2]
g=[3,4]
f,g=func() #How make it append
print f,g

#Expected Output:
[1,2,-1,2] [3,4,4,1]
对于一个列表,我可以执行
f.extend(func())
但是对于多个列表呢。
不建议创建临时变量。

为什么不向函数传递两个参数

def func(l1 ,l2):
    return l1+[-1,2],l2+[4,1]

f = [1,2]
g = [3,4]
f,g = func(f,g)
print f,g
产生

[1, 2, -1, 2] [3, 4, 4, 1]
但是,让函数扩展列表并完全避免返回值可能更容易

def func(l1 ,l2):
    l1.extend([-1,2])
    l2.extend([4,1])

f = [1,2]
g = [3,4]
func(f,g)
print f,g

为什么不给函数传递两个参数呢

def func(l1 ,l2):
    return l1+[-1,2],l2+[4,1]

f = [1,2]
g = [3,4]
f,g = func(f,g)
print f,g
产生

[1, 2, -1, 2] [3, 4, 4, 1]
但是,让函数扩展列表并完全避免返回值可能更容易

def func(l1 ,l2):
    l1.extend([-1,2])
    l2.extend([4,1])

f = [1,2]
g = [3,4]
func(f,g)
print f,g

如果此问题更一般,并且您无法修改函数,请使用
zip

>>> f,g = (x+y for x,y in zip((f,g), func()))
>>> f
[1, 2, -1, 2]
>>> g
[3, 4, 4, 1]

如果此问题更一般,并且您无法修改函数,请使用
zip

>>> f,g = (x+y for x,y in zip((f,g), func()))
>>> f
[1, 2, -1, 2]
>>> g
[3, 4, 4, 1]

“不建议创建临时变量。”-有什么特殊原因吗?您是否需要在某个维度上扩展它,或者一次扩展一些N个列表,而不是两个?几乎所有的解决方案都需要临时变量,但我们仍然可以尝试使其尽可能干净。创建临时变量在python中,您只需使用“+”操作符扩展列表即可。这应该是一个很好的起点。“创建临时变量是不可取的。”-有什么特别的原因吗?您是否需要在某个维度上扩展它,或者一次扩展一些N个列表,而不是两个?几乎所有的解决方案都需要临时变量,但我们仍然可以尝试使其尽可能干净。创建临时变量在python中,您只需使用“+”操作符扩展列表即可。这应该是一个很好的起点。这感觉不对,函数并不真正关心输入,它只是附加…@KarolyHorvath我明白你的观点,但OP正在分配/想要使用返回值,所以我建议在这种模式下工作人们想做各种奇怪的事情,帮助做到这一点并不一定是个好主意。@KarolyHorvath我忽略了代码所在的上下文,所以我遵循OP的方法。请看我的编辑,我添加了另一个选项这感觉不对,函数并不真正关心输入,它只是附加…@KarolyHorvath我明白你的意思,但OP正在分配/想要使用返回值,所以我建议在这种模式下工作人们想做各种奇怪的事情,帮助做到这一点并不一定是个好主意。@KarolyHorvath我忽略了代码所在的上下文,所以我遵循OP的方法。请查看我的编辑,我添加了另一个选项