2013-04-24 68 views
0

我有這樣名單出來古怪蟒蛇

[796, 829, 1159, 1162]

名單我也有像這樣的列表:

['144 154', '145 151', '145 152', '145 153', '145 154', '146 152', '146 153', '146 154', '147 153', '147 154'] 這些都是不按比例

我想要什麼要做的是使用第一個列表元素作爲最後一個數組的索引

我試過這個piec代碼E:

contacts = [] 
for i in findres: 
    contacts += rulelines[i] 
print contacts 

其中findres是第一個列表,rulelines是最後的名單 但是這個古怪打印contacts名單出來:

['5', ' ', '7', '2', '5', ' ', '1', '0', '5', '7', ' ', '1', '5', '0', '7', ' ', '1', '5', '3']

我敢肯定,它很容易,但哪裏我會錯嗎?

所需要的輸出,我相信是['5 72','5 105', '7 150',7 153']

我還沒有放下所有的列表中的元素,因爲在每個

+4

您能告訴我您期望的輸出是什麼嗎? – Dusk 2013-04-24 18:05:43

+1

那麼,如果第一個列表是'findres',而第二個列表是'rulelines',那麼這將不會產生你給出的輸出。 – Aya 2013-04-24 18:07:42

+0

你可以在你的代碼中包含'rulelines'和'findres'嗎? – 2013-04-24 18:10:37

回答

1

以此爲模板:

findres = [5, 7, 15, 22] 
contacts = list('abcdefghijklmnopqrstuvwxyz') # dummy list 

result = [ contacts[index] for index in findres ] 
print result 

# ['f', 'h', 'p', 'w'] 
2

超過100個元素看起來當你將contacts = rulelines[i]你實際分配rulelines[i]像串。您應該執行contacts.append(rulelines[i])將聯繫人添加到列表中,否則您會不斷覆蓋最後一次分配。

0

如果我理解正確的話,你需要提取的findres第一要素每次第一個數字。然後,使用這些提取的數字作爲另一個陣列的索引

>>> findres = ['144 154', '145 151', '145 152', '145 153', '145 154', '146 152', '146 153', '146 154', '147 153', '147 154'] 
>>> first_elements = [c.split()[0] for c in findres] 
>>> print first_elements 

['144', '145', '145', '145', '145', '146', '146', '146', '147', '147'] 

>>> contact = [] 
>>> for i in first_elements: 
     contacts.append(rulelines[i])