Чтобы распаковать список или кортеж пар в два отдельных списка или кортежа в Python, вы можете использовать различные методы. Вот несколько примеров:
Метод 1: использование цикла for
pairs = [(1, 'apple'), (2, 'banana'), (3, 'orange')]
# Unpacking into two lists
numbers = []
fruits = []
for pair in pairs:
number, fruit = pair
numbers.append(number)
fruits.append(fruit)
print(numbers) # [1, 2, 3]
print(fruits) # ['apple', 'banana', 'orange']
Метод 2: использование функции zip() с оператором звезды
pairs = [(1, 'apple'), (2, 'banana'), (3, 'orange')]
# Unpacking into two lists
numbers, fruits = zip(*pairs)
print(list(numbers)) # [1, 2, 3]
print(list(fruits)) # ['apple', 'banana', 'orange']
Метод 3. Использование списков
pairs = [(1, 'apple'), (2, 'banana'), (3, 'orange')]
# Unpacking into two lists
numbers = [pair[0] for pair in pairs]
fruits = [pair[1] for pair in pairs]
print(numbers) # [1, 2, 3]
print(fruits) # ['apple', 'banana', 'orange']
Метод 4: использование функции unzip() из модуля itertools (доступно в Python 3.10 и более поздних версиях)
from itertools import unzip
pairs = [(1, 'apple'), (2, 'banana'), (3, 'orange')]
# Unpacking into two lists
numbers, fruits = unzip(pairs)
print(numbers) # [1, 2, 3]
print(fruits) # ['apple', 'banana', 'orange']
Метод 5. Использование функции map() с лямбда-выражением
pairs = [(1, 'apple'), (2, 'banana'), (3, 'orange')]
# Unpacking into two lists
numbers, fruits = map(lambda x: x[0], pairs), map(lambda x: x[1], pairs)
print(list(numbers)) # [1, 2, 3]
print(list(fruits)) # ['apple', 'banana', 'orange']
Это всего лишь несколько примеров того, как можно распаковать список или кортеж пар в два отдельных списка или кортежа в Python. Вы можете выбрать метод, который соответствует вашим потребностям и стилю кодирования.