-1

我对 python 很陌生,我正在尝试以间隔将项目从一个列表附加到另一个列表。到目前为止,我的代码是:

def place_item(a,b):
    interval = (4,8)
    for s in a:
        i = a.index(s)
        b[i:i] = [s]
    print b

a = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

b = [''] * (3*26)

place_item(a,b)

我得到的结果是列表中的前 26 个字母后跟 52 个 ' ' 空格,这是有道理的,因为我没有要求它多次生成“列表 a”或将项目放在“列表 a”中前一个列表之后的 4 到 8 个空格之间的间隔。所以基本上我试图循环“list a”并将其字母散布在“list b”中,相隔4和8个空格。而且我不知道该怎么做:(。有什么想法吗?

编辑:我将包括每个人向我指出的我忘记的内容。我希望项目之间的空格长度在 4 到 8 个字符之间,长度是为每个项目随机选择的。结果看起来像这样:

['a','','','','','','b','','','','','','','c','','','','','d'...]

编辑 2:blob8108 指出使用这种方法我很快就会用完空间。是否有可能让一些字母按正常顺序排列('a'、'b'、'c'、'd' 等),而其他字母与这些首字母隔开(例如'e'、'f ','g' 从 'a' 到 4-8 个空格,而 'h','i','j' 从 'b' 到 4-8 个空格)?结果可能如下所示:

['a','b','c','d','g','e','h','i',etc.]
4

1 回答 1

0

你可以试试这个:

import random

abc = [chr(x) for x in range(97, 123)]
out = []

out.append(abc[0])
for item in abc[1:]:
    out += [''] * random.randrange(4, 8)
    out.append(item)

不过,这确实具有可变长度输出。

如果这是你想要的,你将不得不更多地解释固定长度是如何工作的。

于 2012-06-15T09:27:51.570 回答