我可以做到這一點..列表和變量是否可以從函數返回?
def funcOne():
a,b = funcTwo()
print a, b
def funcTwo():
.....
......
return x, y
但可以列表也可以從funcTwo返回,並在funcOne與2個值一起顯示?似乎沒有任何工作
我可以做到這一點..列表和變量是否可以從函數返回?
def funcOne():
a,b = funcTwo()
print a, b
def funcTwo():
.....
......
return x, y
但可以列表也可以從funcTwo返回,並在funcOne與2個值一起顯示?似乎沒有任何工作
當您返回多個值時,您所做的只是構建包含這些值的單個元組,並將其返回。你可以構造元組的任何東西,和一個列表來下什麼:
def funcOne():
a, b, some_list = funcTwo()
print a, b, some_list
def funcTwo():
...
some_list = [...]
return x, y, some_list
如果你的意思是你想從列表中返回的值,你可以做到這一點剛剛返回列表,列表拆包作品太:
def funcOne():
a, b, = funcTwo()
print a, b
def funcTwo():
...
some_list = [x, y]
return some_list
或者,如果你想從一個列表中的所有值,延長的返回值,你只需要連接你希望有額外的值的列表返回值的列表:
def funcOne():
a, b, c, d = funcTwo()
print a, b, c, d
def funcTwo():
...
some_list = [z, w]
return [x, y] + some_list
>>> def list_and_vars():
a, b = "fee", "fi"
c = ["fo", "fum"]
return a, b, c
>>> print list_and_vars()
('fee', 'fi', ['fo', 'fum'])
>>> a, b, [c, d] = list_and_vars()
>>> a, b, c, d
('fee', 'fi', 'fo', 'fum')
def funcOne():
f2x,f2y = funcTwo() #tuple unpacking var1,var2 = (val1,val2)
print a,b,list((lf2x,f2y)) #convert tuple to list
def funcTwo():
return x, y #actually returns (x,y)
如果我們看一下下面的
def funcTwo():
return 'a','b'
print(funcTwo())
我們可以看到,funcTwo
返回元組含'a','b'
:
>>>
('a', 'b')
這樣Python不只會返回一個值,但是它的元組拆包會使它看起來像這樣:
var1,var2 = funcTwo()
print(var1)
print(var2)
>>>
a
b
您可以明確地返回一個列表:
def funcTwo():
return ['a','b']
print(funcTwo())
在這種情況下,你仍然返回一個值,它只是一個列表。例如:
def funcTwo():
return ['a','b']
def funcOne():
return 'c','d',funcTwo()
print(funcOne())
將打印
>>>
('c', 'd', ['a', 'b'])
同樣的,你可以看到,我們只返回一個值,其中包括我們想返回所有值的元組。
如果你想簡單地打印東西funcOne
除非你使用的字符串格式,如果你有,你會得到同樣的結果print
-ed的返回值,因爲print('a','b','c')
打印('a','b','c')
但是你可以這樣做:
def funcOne():
print(','.join(['c','d',funcTwo().__repr__()]))
>>>
c,d,['a', 'b']
太棒了。感謝所有,但這真的清除了事情 – user2395759