Я пытаюсь создать полиалфавитный шифр, но я не могу найти способ добавления меньшего списка в больший список, я пытался с использованием списочных пониманий, но все еще не могу это сделать. Пожалуйста помоги! Я хочу, чтобы меньший список продолжал добавлять те же самые числа в больший список

Так скажем, у меня есть 2 списка, как это:

x = [1,2,3]
y = [4,5,6,7,8,9]
z = [i + j for i,j in zip(x,y)]

Результат следующий

print(z)
[5,7,9]

Как мне сделать так, чтобы оно было:

[5,7,9,8,10,12]

Это означает, что он добавляет те же номера в более длинный список, спасибо за помощь

1
MAUCA 31 Авг 2017 в 20:42

3 ответа

Лучший ответ

Вы можете использовать itertools.cycle, чтобы вернуться назад { {X1}} по мере необходимости

>>> import itertools
>>> x = [1,2,3]
>>> y = [4,5,6,7,8,9]
>>> z = [i + j for i, j in zip(itertools.cycle(x), y)]
>>> z
[5, 7, 9, 8, 10, 12]
5
CoryKramer 31 Авг 2017 в 17:44
x = [1,2,3]
y = [4,5,6,7,8,9]
z=[a+b for a,b in zip((x*(int(len(y)/len(x))))[:len(y)],y)]

Как насчет этого с zip

0
whackamadoodle3000 31 Авг 2017 в 20:14

Это самый простой способ, я думаю: {{Х0}}

1
Cuber 31 Авг 2017 в 17:46