Python 3.4.3 - 如何使 textwrap 与 itertools 一起使用

标签 python python-3.4 python-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))    

并从 here 获取一些信息和here ,但无法解决我的问题。

我只是想将这些单词排列成所有可能的组合,不可重复的短语,长度为 60 个字符。

最佳答案

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

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

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

因此,您也可以先进行检查,然后再循环排列。

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

关于Python 3.4.3 - 如何使 textwrap 与 itertools 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32081336/

相关文章:

python - 为什么我总是收到 HTTP 407 : Proxy Authentication Required?

python - 如何使用python 3检查文件夹是否包含文件

html - 用父元素的 beautifulsoup4 : does it affect the . 字符串解包元素?

python - 如何以编程方式从 apt 获取软件包列表?

python - 从列表中删除重复的无序元组

python - 两个列表的组合,同时保持顺序

python - 如何从Python扩展模块的C代码调用内置函数(或方法)?

python - django 并执行一个单独的 .py 来操作数据库

python - 如何使用 Spark (pyspark) 编写 Parquet 文件?

python - Python itertools 计数器的当前值是多少