Два списка списка Python shuffle
У меня есть два списка:
a = [1, 2, 3, 4] b = [5, 6, 7, 8]
Мне нужно получить что-то вроде этого:
c = [1, 5, 2, 6, 3, 7, 4, 8]
Я использую это решение:
c = list(reduce(lambda x, y: x + y, zip(a, b)))
Есть лучший способ сделать это?
- Почему zip меняет мои списки?
- заменить подстроки в списке
- Самый эффективный способ Python выбрать самую длинную строку в списке?
- Python: как разбить файл на куски путем появления заголовочного слова
- строковый список в два отдельных списка
Использование List List :
>>> [x for tup in zip(a, b) for x in tup] [1, 5, 2, 6, 3, 7, 4, 8]
Вышеупомянутое вложенное понимание списка эквивалентно следующему вложенному циклу (на всякий случай, если вы запутались):
result = [] for tup in zip(a, b): for x in tup: result.append(x)
Использование chain
:
from itertools import chain, izip interweaved = list(chain.from_iterable(izip(a, b))) # [1, 5, 2, 6, 3, 7, 4, 8]
Также жизнеспособный:
list(sum(zip(a, b), ()))
- Объединение двух LIsts уникальным способом в Python
- Печатать элемент из списка в кусках 50 в Python
- Python, как отсортировать этот список?
- Переключение двух списков в список
- Элемент списка сохраняет тот же адрес памяти после сортировки / копирования
- Добавление к значениям в словаре из двух списков разной длины
- Неожиданный дополнительный ноль в списке python при назначении явно
- Использование понимания списка Python немного похоже на zip
- найти «перекрытие» между 2 списками python