繁体   English   中英

列表的排列

[英]Permutations of a list

这次我尝试输入一个句子,例如:Hello World! , 通过 .split(" ") 将其拆分并打印所有可能的组合,但代码会排除错误。

x = str(input("Text?"))
x = x.split(" ")
print(x)
ls = []
for i in x:
  ls.append(i)
print(ls)
permutated = permutations(ls,len(ls))
for i in permutated:
  print(permutated)

ls 没用,但我尝试使用它

我正在打印置换而不是 i :(

感谢 Perplexabot 在评论中的洞察力。

调用排列运算符时,必须使用迭代器来实例化值。

import itertools

x = "Hello world this is a planet"
x = x.split()

all_combos = list(itertools.permutations(x, r=len(x)))
# print(f'Your data has {len(all_combos)} possible combinations')
# Your data has 720 possible combinations

如果您想更进一步并评估所有组合,而不限于输入中的单词数:

all_combos2 = []
for i in range(1, len(x)+1):
    all_combos2 += list(itertools.permutations(x, i))

print(f'Your data has {len(all_combos2)} possible combinations')
# Your data has 1956 possible combinations

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM