[英]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.