2016-01-10 311 views
2

我有兩個列表。 例子:將列表中的每第二個元素替換爲其他列表中的每三個元素。

a=[10,20,30,40,50,60,70,80] 
b=[2,4,6,8,10,12,14,16,18,20,22,24] 

說,我想從列表b每三個元素替換列表中的每第二個元素。 對於我而言即時通訊使用這個公式來進行第2個各要素做到這一點:

a[1]="{}\n".format(b[2]) 

但我怎麼做這在列表中的所有元素?

提前致謝!

回答

1

試試這個:

for x,y in zip(range(1, len(a), 2), range(2, len(b), 3)): 
    a[x] = '{}\n'.format(b[y]) 

或者,短的路,雖然這是一個直接替換,並不會做你的格式:

a[1::2] = b[2::3] 
+0

謝謝!解決了我的問題! – F88

6

使用指數切片:

a = [10,20,30,40,50,60,70,80] 
b = [2,4,6,8,10,12,14,16,18,20,22,24] 
a[1::2] = b[2::3] 

,或者如果這個格式也很重要:

a[1::2] = map('{}\n'.format, b[2::3]) 
+0

這真的很不錯,但沒有照顧字符串格式。 –

+0

這也工作,需要格式化,所以謝謝你! – F88

相關問題