Python 3.4.3 - 如何使用itertools使textwrap工作

时间:2015-08-18 19:44:06

标签: python python-3.4 itertools

我正在使用此代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import textwrap
import itertools

a = []

a.append('word1')
a.append('word2')
a.append('word3')
a.append('word4')
a.append('word5')
a.append('word6')
a.append('word7')
a.append('word8')
a.append('word9')
a.append('word10')

for permutation in itertools.permutations(a,):
    permutation = textwrap.TextWrapper(len=60,break_long_words=False,replace_whitespace=False)
    print(' '.join(permutation))    

herehere获取一些信息,但无法解决我的问题。

我只想将这些单词置换为所有可能的组合,其中包含长度为60个字符的非可重复短语。

1 个答案:

答案 0 :(得分:1)

这将打印所有排列组合,当组合成单个字符串时,其长度为60:

for permutation in itertools.permutations(a):
    s = ' '.join(permutation)
    if len(s) == 60:
        print(s)

但无论如何这样做没有多大意义,因为序列的排列将始终包含该序列的所有元素,因此组合的字符串将始终具有相同的长度,并且只有单词内部的顺序发生变化

所以你也可以先进行检查,然后循环遍历排列。

或者你可以生成允许不同长度的组合。