在python中生成字符串列表

杰希丁斯

我是python的新手,所以我想为这个快速脚本做个尝试...

给定一组输入词:即“ dead”,“ beef”,一个人如何以编程方式生成给定长度和填充字符的所有可能字符串?

结果看起来像这样(使用填充0长度为12的填充):

deadbeef0000
dead0beef000
dead00beef00
dead000beef0
dead0000beef
0deadbeef000
0dead0beef00
0dead00beef0
0dead000beef
00deadbeef00
00dead0beef0
00dead00beef
000deadbeef0
000dead0beef
0000deadbeef

生成此列表的幼稚方法可能是:

for x in range(0, 5):
  pre = '0' * x
  for y in range(0, 5):
    mid = '0' * y
    for z in range (0, 5):
      post = '0' * z
      val = pre + 'dead' + mid + 'beef' + post
      if len(val) == 12:
        print val

有没有更直接的方法?我已经研究itertools了组合,但无法获得所需的结果。

蒂姆·彼得斯

假设如您的示例所示,您希望“真实词”以其原始顺序出现,那么可以直接完成此操作(每个所需的输出字符串仅生成一次,没有重复,也不需要“清除”多余的字符串) 。每个单词需要一个“插槽”,每个填充字符需要一个插槽,其中填充字符的总数是指定的最终长度减去单词长度的总和。在您的示例中,您有两个长度为4的单词,总单词长度为8,因此每个输出字符串中需要12-8 = 4个填充字符。这总共提供6个插槽(2个用于单词,4个用于填充字符)。因此,输出字符串的总数为6选择2 = 6选择4 = 6 * 5/2 =15。这也说明了如何使用itertools.combinations要获得结果,请执行以下操作:从所有插槽索引的集合中选择2个单词的索引,或者-等价地-从所有插槽索引的集合中选择4个填充字符的索引。这里的代码执行前者:

def get_strings(words, pad, length):
    from itertools import combinations
    nwords = len(words)
    npad = length - sum(len(word) for word in words)
    nslots = nwords + npad
    for ix in combinations(range(nslots), nwords):
        result = [pad] * nslots
        i = 0
        for j in ix:
            result[j] = words[i]
            i += 1
        yield "".join(result)

然后:

for s in get_strings(["dead", "beef"], "0", 12):
    print s

显示您想要的15个字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在python中生成固定长度的随机字符串列表

来自分类Dev

在 3 个字符串列表中生成所有可能的元素组合?

来自分类Dev

如何根据字符串列表在 Flask 中生成按钮或字段(表单)?

来自分类Dev

从对象列表生成字符串列表

来自分类Dev

从字符串列表生成树结构

来自分类Dev

Python中字符串列表的列表

来自分类Dev

Python列表内的字符串列表

来自分类Dev

Python中字符串列表的列表

来自分类Dev

如何在Python的列表列表中从字符串中生成数字列表

来自分类Dev

生成不在字符串列表中的子字符串列表

来自分类Dev

Python如何分割字符串列表

来自分类Dev

在python中解析字符串列表

来自分类Dev

Python加入字符串列表

来自分类Dev

在python中过滤字符串列表

来自分类Dev

连接Python中的字符串列表

来自分类Dev

遍历 Python 中的字符串列表

来自分类Dev

生成给定字符串列表的子列表

来自分类Dev

字符串列表

来自分类Dev

从Python的字符列表中形成字符串列表

来自分类Dev

Python:减少(字符串列表)->字符串

来自分类Dev

Python“字符串或字符串列表”类型约定?

来自分类Dev

字符串列表中的字符串长度python

来自分类Dev

python 字符串列表中子字符串的索引

来自分类Dev

在python中生成包含关键字的字符串的子列表

来自分类Dev

如何生成以R中的序列结尾的字符串列表

来自分类Dev

从字符串列表生成随机唯一项

来自分类Dev

如何从数组生成随机字符串列表

来自分类Dev

Python从字符串列表中删除字符串列表

来自分类Dev

使用Python在字符串列表中查找字符串列表中的项目索引