![](/img/trans.png)
[英]Why does pd.rolling and .apply() return multiple outputs from a function returning a single value?
[英]Returning multiple outputs from function
我不確定這是否可能,但是...
我正在嘗試編寫一個將輸出數字列表的函數,以便可以將它們輸入到另一個函數中。 不過,我處於死胡同,因為return
或yield
(在此上下文中使用)都無法滿足我的需求。
def ITERATOR():
for number in range(1,3):
for item in itertools.permutations(range(15),number):
yield item
顯然,只要使用return
,函數就會中斷, yield
返回所有內容。 我理想地希望它輸出的是通過以下方式在每行上打印的內容:
def ITERATOR():
for number in range(2,4):
for item in itertools.permutations(range(15),number):
print(item)
即:
(0, 1)
(0, 2)
(0, 3)
(0, 4)
(0, 5)
(0, 6)
(0, 7)
(0, 8)
(0, 9)
(0, 10)
(0, 11)
(0, 12)
(0, 13)
(0, 14)
etc...
有什么辦法可以做到這一點?
如果要返回列表,可以執行以下操作:
def fct():
return [item for item in itertools.permutations(range(15),number) for number in range(2,4)]
對於發電機
def fct():
return (item for item in itertools.permutations(range(15),number) for number in range(2,4))
解
new_tuples = []
for i in range(0, 5):
for j in range(1, 16):
new_tuples.append((i, j))
for i in new_tuples:
print(i)
產量
(xenial)vash@localhost:~/python$ python3 text_seg.py (0, 1) (0, 2) (0, 3) (0, 4) (0, 5) (0, 6) (0, 7) (0, 8) (0, 9) (0, 10) (0, 11) (0, 12) (0, 13) (0, 14) (0, 15) (1, 1)
評論
這種方法會滿足您的需求嗎? 您可以根據需要交換數字,但這將允許您在tuples
存儲中有一個list
,並能夠調用它們進行print
。
您可以通過函數的參數返回列表,並使用函數的返回值指示建立的排列數:
import itertools
permut = []
def ITERATOR(item):
n_permuts= 0
for number in range(2,4):
for item in itertools.permutations(range(15),number):
permut.append(item)
n_permuts+= 1
return n_permuts
print (ITERATOR(permut))
for item in permut:
print(item)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.