2016-01-10 12 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. Для моих целей Im, используя эту формулу, чтобы сделать это в течение первых 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