簡體   English   中英

從函數返回多個輸出

[英]Returning multiple outputs from function

我不確定這是否可能,但是...

我正在嘗試編寫一個將輸出數字列表的函數,以便可以將它們輸入到另一個函數中。 不過,我處於死胡同,因為returnyield (在此上下文中使用)都無法滿足我的需求。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM