2012-06-14 341 views
-1

我很新的python,我試圖追加項目從一個列表到另一個間隔的間隔。到目前爲止我的代碼是:追加項目在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」不止一次或在前面的列表之後以4到8個空格之間的間隔將項目放置在「列表a」中。 所以基本上我試圖循環「列表a」並將其字母散佈在整個「列表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

你想用這種方法解決什麼問題?你打算如何使用這個功能? – Daenyth

+2

你是要求每4或8個字母加入列表b – corn3lius

+0

是不是每第8個字母_定義_也是第4個字母? 8/4 = 2 – voithos

回答

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) 

這不具有可變長度的輸出,雖然。

你將不得不解釋如何固定長度將工作,如果這是你想要的。

+0

我切換到一個可變長度的輸出,使用這個算法,它工作:)。非常感謝你,因爲我的經驗不足而感到抱歉。 – user1456918

+0

沒關係。我很高興它幫助:) – tjvr