簡體   English   中英

如何避免在python程序的輸出中打印None列表

[英]how to avoid printing None list in the output of python program

我最近開始學習python,我正嘗試按字典順序打印字符串S的大小k的所有可能排列。

我得到正確的結果,但是在輸出中,我的程序也在打印一個None類型列表,即:[None,None]

from itertools import permutations
S,k = input().split()
[print(x) for x in sorted(map("".join,permutations(S,int(k))))]

輸入電流輸出:hs 2
HS
SH
[無,無]

輸入的預期輸出:hs 2
HS
SH

print(..)是一個寫入標准輸出通道並返回 None的函數。 所以您在這里將None添加到列表中。

您可以使用以下方法創建值列表:

sorted(map("".join,permutations(S,int(k)))

盡管對於較大的k ,最終將耗盡內存。 您可以簡單地預先對S進行排序,這樣效率更高,並且您可以在這里以迭代方式使用permutations ,從而減少了內存量,例如:

for p in permutations(sorted(S),int(k)):
    print(''.join(p))

結果,該算法將采用O(n log n + n k ,而不是O(n k ×k×log n) 內存占用量將是O(n)而不是O(n k ,其中字符串中的字符數為n ,排列中的項數為k

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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