python有没有办法在没有列表的情况下打印单词上的itertools.permutations?

2024-05-14 10:14:04 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,每当我在字符串上运行itertools.permutations时,结果如下:

输入代码:

import itertools
import pprint

pprint.pprint(list(itertools.permutations("par")))

我的输出是这个数组:

[('p', 'a', 'r'),
 ('p', 'r', 'a'),  
 ('a', 'p', 'r'),  
 ('a', 'r', 'p'),  
 ('r', 'p', 'a'),  
 ('r', 'a', 'p')]  

对于较大的字符串,这是一个大问题。我需要一种方法将这些打印出来,作为一条普通的线条,例如:

par
pra
apr
arp
rpa
rap

或者在列表中,比如

par, pra, apr, arp, rpa, rap

我是编程新手,所以如果有什么事情看起来很明显,我的错


Tags: 方法字符串代码import数组aprlistpprint
3条回答

使用map

>>> list(map(''.join, itertools.permutations("par")))
['par', 'pra', 'apr', 'arp', 'rpa', 'rap']

或列表:

>>> [''.join(l) for l in itertools.permutations("par")]
['par', 'pra', 'apr', 'arp', 'rpa', 'rap']
>>> 

或者正如@ShadowRanger提到的,你可以做得更好:

for x in map(''.join, itertools.permutations("par")):
    print(x)

输出:

par
pra
apr
arp
rpa
rap

或者:

for x, y, z in itertools.permutations("par"):
    print(x + y + z)
>>> for perm in itertools.permutations("par"):
...     print("".join(perm))
... 
par
pra
apr
arp
rpa
rap

用于循环(如果要直接打印)——

import itertools
import pprint

a = list(itertools.permutations("par"))

for i,j,k in a:
    print(f'{i}{j}{k}') # Output

或列表理解(如果您想要列表)——

output = [f'{i}{j}{k}' for i,j,k in a]
print(output)

相关问题 更多 >

    热门问题