Каков подход Pythonic для достижения следующего?
# Original lists:
list_a = [1, 2, 3, 4]
list_b = [5, 6, 7, 8]
# List of tuples from 'list_a' and 'list_b':
list_c = [(1,5), (2,6), (3,7), (4,8)]
Каждый член list_c
является кортежем, чей первый член от, list_a
а второй от list_b
.
itertools
модуль определяетzip_longest()
метод , который останавливается в конце длинного списка, заполняя недостающие значения , с чем - то вы предоставляете в качестве параметра.s/zip_longest()/izip_longest()
. Переименован в Python 3.x вzip_longest()
.itertools.product()
делает этоВ python 3.0 zip возвращает объект zip. Вы можете получить список из этого, позвонив
list(zip(a, b))
.источник
Вы можете использовать карту лямбда
Это также будет работать, если длина оригинальных списков не совпадает
источник
map(None, a,b)
Вы ищете встроенную функцию Zip .
источник
Я не уверен, является ли это питонским способом или нет, но это кажется простым, если оба списка имеют одинаковое количество элементов:
источник
Я знаю, что это старый вопрос, и на него уже был дан ответ, но по какой-то причине я все еще хочу опубликовать это альтернативное решение. Я знаю, что легко узнать, какая встроенная функция делает «магию», которая вам нужна, но не мешает узнать, что вы можете сделать это самостоятельно.
источник
card
вif-elif
не нужны, поэтому у вас естьcontinue
. (На самом деле, безcontinue
вас не было бы изменить списки: как ранее упомянутые задания должны быть затем сохранены и сталиcard = (list_1[i], '')
иcard = ('', list_2[1])
соответственно.)Вывод, который вы показали в постановке задачи - это не кортеж, а список
проверить
учитывая, что вы хотите получить результат как кортеж из list_a и list_b, сделайте
источник
<map object at 0x000001F266DCE5C0>
или<zip object at 0x000002629D204C88>
. По крайней мере, решение по поводу map и zip (одного) кажется мне неполным (или слишком сложным) для меня.Один вариант без использования
zip
:Если кто-то хочет получить не только кортежи 1-го с 1-м, 2-го с 2-м ... но все возможные комбинации из 2 списков, это будет сделано с
источник