Как вывести элементы из нескольких списков по-порядку?

Всем привет.

У меня есть несколько списков. Я хочу объединить их в один, но с нужным мне расположением элементов. Я делаю так:

a = [1, 2, 3, 4, 5]
b = ['comucter', 'mouze', 'clouse', 'pauze', 'downlaode']

ab = []
for i in a, b:
   ab.append(i)

print(ab)

И получаю стандартный и логичный ответ:

[[1, 2, 3, 4, 5], ['comucter', 'mouze', 'clouse', 'pauze', 'downlaode']]

Но хочу получить:

[[1, 'comucter'], [2, 'mouze'], [3, 'clouse'], [4, 'pauze'], [5, 'downlaode']]

Как это сделать?


Ответы (1 шт):

Автор решения: Vladislav

Вы можете использовать цикл zip() для объединения списков a и b:

ab = []
for x, y in zip(a, b):
   ab.append([x, y])

print(ab)

В этом случае вы получите список ab, состоящий из списков, каждый из которых содержит соответствующий элемент из a и b. Результат будет таким:

[[1, 'comucter'], [2, 'mouze'], [3, 'clouse'], [4, 'pauze'], [5, 'downlaode']]

Чтобы отсортировать список ab из предыдущего примера, вы можете использовать функцию sorted(). Например, вы можете отсортировать ab по первому элементу каждого списка, используя следующий код:

ab_sorted = sorted(ab, key=lambda x: x[0])
print(ab_sorted)

В этом случае ab_sorted будет списком, состоящим из списков ab, отсортированных по возрастанию первого элемента.

→ Ссылка