Подтвердить что ты не робот

Python: создать список кортежей из списков

У меня есть два списка:

x = ['1', '2', '3']
y = ['a', 'b', 'c']

и мне нужно создать список кортежей из этих списков, как показано ниже:

z = [('1','a'), ('2','b'), ('3','c')]

Я пробовал сделать это вот так:

z = [ (a,b) for a in x for b in y ]

но результат:

[('1', '1'), ('1', '2'), ('1', '3'), ('2', '1'), ('2', '2'), ('2', '3'), ('3', '1'), ('3', '2'), ('3', '3')]

то есть. список кортежей каждого элемента из x с каждым элементом в y... Каков правильный подход к тому, что я хотел сделать? спасибо...

РЕДАКТИРОВАТЬ: Два других дубликата, упомянутых перед редактированием, являются моей ошибкой, по ошибке отступали его в другом для цикла...

4b9b3361

Ответ 1

Используйте встроенную функцию zip():

z = zip(x,y)

Ответ 2

Вы ищете функцию zip builtin. Из документов:

>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> zipped = zip(x, y)
>>> zipped
[(1, 4), (2, 5), (3, 6)]