Как вывести элементы из нескольких списков по-порядку?
Всем привет.
У меня есть несколько списков. Я хочу объединить их в один, но с нужным мне расположением элементов. Я делаю так:
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 шт):
Вы можете использовать цикл 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, отсортированных по возрастанию первого элемента.