gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 00:41:02 25 4
gpt4 key购买 nike

我最近开始学习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

最佳答案

print(..) 是一个写入标准输出 channel 的函数,返回 None。因此,您在这里将 None 添加到您的列表中。

您可以使用以下方式创建值列表:

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

尽管对于较大的k,这最终会耗尽内存。您可以简单地提前对 S 进行排序,这样效率更高,并且您可以在此处以可迭代的方式使用 permutations ,从而减少内存量,例如:

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

因此,该算法将采用 O(n log n + nk),而不是 O(nk ×k×log n)。内存占用将为 O(n),而不是 O(nk),其中 n 为字符数在字符串中,k 是排列中的项目数。

关于python - 如何避免在 python 程序的输出中打印 None 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57348291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com