Здесь мы обсудим различные методы преобразования Python Tuple в список.

Содержание

Метод 1: с помощью встроенной функции list()

Этот метод использует встроенную функцию списка, которая принимает итерируемый объект в качестве аргумента и возвращает список. Простая передача кортежа в качестве аргумента функции списка преобразует его в список.

# Define a tuple with values 10, 20, 30, 40, 50
value =(10, 20, 30, 40, 50)

# Convert the tuple to a list
my_tuple = list(value)

# Print the list
print(my_tuple)

Приведенный выше код определяет значение кортежа со значениями 10, 20, 30, 40, 50. Затем он преобразует кортеж в список my_tuple с помощью функции list().

  • Наконец, он печатает список с помощью функции print(). Результатом будет список [10, 20, 30, 40, 50].

Метод 1: с помощью встроенной функции list()

Способ 2: использование цикла for

Этот метод использует цикл for для перебора каждого элемента кортежа и добавления каждого элемента в новый список. При этом создается новый список с теми же элементами, что и исходный кортеж.

# Define a tuple countries
countries =("United Kingdom", "USA", "Canada", "Brazil")

# Create an empty list to store the elements of the tuple
lst = []

# Loop through each element in the tuple
for i in countries:
    # Append each element to the list
    lst.append(i)

# Print the list
print(lst)

Код определяет кортеж стран с названиями стран «Великобритания», «США», «Канада», «Бразилия». Затем он создает пустой список lst для хранения элементов кортежа.

  • Затем код проходит через каждый элемент кортежа с помощью цикла for и добавляет каждый элемент в список lst с помощью метода добавления.
  • Наконец, он печатает список с помощью функции print(). Результатом будет список [‘Великобритания’, ‘США’, ‘Канада’, ‘Бразилия’].
Output: ['United Kingdom', 'USA', 'Canada', 'Brazil']

Метод 3: использование понимания списка

Этот метод использует краткий и эффективный синтаксис для создания списка из итерируемого объекта, называемый пониманием списка. Просто укажите итерируемый объект в качестве входных данных для понимания списка, и каждый элемент итерируемого объекта будет добавлен в новый список.

# Define a tuple with country names
t =("USA", "Brazil", "United Kingdom", "Canada")

# Create a list of the elements of the tuple using a list comprehension
lst = [i for i in t]

# Print the list
print(lst)

Приведенный выше код определяет кортеж t с названиями стран «США», «Бразилия», «Великобритания», «Канада».

  • Затем он создает список lst, используя механизм определения списка, который проходит через каждый элемент кортежа t и добавляет каждый элемент в список lst.
  • Наконец, он печатает список с помощью функции print().
Output: ['USA', 'Brazil', 'United Kingdom', 'Canada']

Способ 4: использование оператора *

Этот метод использует оператор * для распаковки элементов кортежа и добавления их в новый список. Оператор * позволяет передавать функции несколько аргументов или распаковывать список или кортеж на отдельные элементы.

# Define a tuple with country names
t =("USA", "Brazil", "United Kingdom", "Canada")

# Create a list from the tuple using the "unpacking" operator *
lst = [*t]

# Print the list
print(lst)

Приведенный выше код определяет кортеж t с названиями стран «США», «Бразилия», «Великобритания», «Канада».

  • Затем он создает список lst, используя оператор «распаковки» * для распаковки элементов кортежа в список. Наконец, он печатает список с помощью функции print().

Способ 4: использование оператора *

Метод 5: использование конструктора списка с итерацией

Этот метод использует конструктор списка для создания списка из итерируемого объекта, в частности, с помощью функции iter для создания итератора из кортежа.

  • Конструктор списка принимает итерируемый объект в качестве аргумента, поэтому передача результата iter(t) конструктору списка преобразует кортеж в список.
# Define a tuple with country names
t =("USA", "Brazil", "United Kingdom", "Canada")

# Convert the tuple to a list using the built-in function `list` and the `iter` function
lst = list(iter(t))

# Print the list
print(lst)

Приведенный выше код определяет кортеж t с названиями стран «США», «Бразилия», «Великобритания», «Канада».

Затем он создает список lst, используя функцию list и передавая кортеж функции iter. Наконец, он печатает список с помощью функции print().

Output: ['USA', 'Brazil', 'United Kingdom', 'Canada']

Способ 6: использование функции карты и конструктора списка

Этот метод использует функцию карты для применения функции к каждому элементу кортежа, а затем использует конструктор списка для преобразования результата функции карты в список.

  • В этом случае функция, передаваемая в карту, является функцией идентификации, которая просто возвращает каждый элемент без изменений.
# Define a tuple with country names
t =("USA", "United Kingdom", "Canada","Brazil")

# Convert the tuple to a list using the `list` function and the `map` function with a lambda function
lst = list(map(lambda x: x, t))

# Print the list
print(lst)

Приведенный выше код определяет кортеж t, содержащий названия стран. Затем он преобразует кортеж в список с помощью функции list и функции карты с лямбда-функцией, которая возвращает входной элемент x. Наконец, код печатает полученный список.

Output: ['USA', 'United Kingdom', 'Canada', 'Brazil']

Метод 7: использование функции сокращения модуля functools

Этот метод использует функцию сокращения из модуля functools для итеративного применения двоичной функции к элементам кортежа и построения нового списка на основе результатов.

# Import the reduce function from the functools module
from functools import reduce

# Define a tuple of country names
t = ("USA", "United Kingdom", "Canada","Brazil")

# Convert the tuple to a list using the reduce function
lst = reduce(lambda x, y: x + [y], t, [])

# Print the resulting list
print(lst)

Этот код импортирует функцию сокращения из модуля functools и определяет кортеж t из 4 элементов. Затем он использует функцию сокращения с лямбда-функцией для преобразования кортежа t в список.

Output: ['USA', 'United Kingdom', 'Canada', 'Brazil']

Метод-8: использование цепного метода модуля itertools

Этот метод использует метод цепочки из модуля itertools для объединения элементов кортежа в одну итерацию, а затем использует конструктор списка для преобразования результата в список.

# Import the chain method from itertools
from itertools import chain

# Define a tuple of countries
t =("USA", "United Kingdom", "Canada","Brazil")

# Convert the tuple to a list using the chain method
lst = list(chain(t))

# Print the resulting list
print(lst)

Приведенный выше код преобразует кортеж t в список lst с помощью функции цепочки из модуля itertools.

  • Функция цепочки принимает итерируемый объект в качестве входных данных и возвращает единый плоский список всех элементов в итерируемых объектах. Здесь кортеж t передается в качестве входных данных в цепочку, а результат присваивается списку lst.
  • Наконец, список lst печатается.
Output: ['USA', 'United Kingdom', 'Canada', 'Brazil']

Метод 9: Использование функции суммы

Этот метод использует функцию суммы для объединения элементов кортежа в один список. Функция sum принимает в качестве аргумента итерацию чисел и возвращает сумму всех элементов в итерации.

# Import the sum function from the built-in python library
from builtins import sum

# Define a tuple of countries
t =("USA", "United Kingdom", "Canada","Brazil")

# Create a list from the elements of the tuple
# The sum function is used to concatenate the list of lists into a single list
lst = sum([[x] for x in t], [])

# Print the final list
print(lst)

Приведенный выше код преобразует кортеж t, содержащий элементы «США», «Великобритания», «Канада» и «Бразилия», в список lst.

  • Функция sum используется для объединения генератора списка, который преобразует каждый элемент кортежа в список из одного элемента в пустой список [].
  • Наконец, распечатывается полученный список lst.
Output: ['USA', 'United Kingdom', 'Canada', 'Brazil']

Метод 10: использование лямбда-функции

Этот метод использует лямбда-функцию для сопоставления каждого элемента кортежа со списком, а затем использует функцию суммы для объединения списков в один список.

  • Лямбда-функция принимает один аргумент и возвращает список, в котором этот аргумент является единственным элементом.
# Define a tuple t with elements "USA", "United Kingdom", "Canada","Brazil"
t =("USA", "United Kingdom", "Canada","Brazil")

# Convert each element in the tuple t to a list and store the result in a list
lst = sum(map(lambda x: [x], t), [])

# Print the list
print(lst)

Приведенный выше код преобразует каждый элемент кортежа t в список и сохраняет результат в списке lst.

  • Функция карты используется для применения лямбда-функции к каждому элементу кортежа, который принимает элемент x и возвращает список, содержащий x.
  • Затем функция sum используется для объединения списка списков в один список. Конечный результат выводится на консоль.
Output: ['USA', 'United Kingdom', 'Canada', 'Brazil']

Способ 11: использование функции zip

Этот метод использует функцию zip для создания пар элементов из кортежа и последовательности целых чисел, а затем использует понимание списка для извлечения элементов кортежа в единый список.

# Define a tuple t
t =("USA", "United Kingdom", "Canada","Brazil")

# Use a list comprehension to convert each element of the tuple into a single element list
# Use zip to create a list of tuples where each tuple contains an element from t and its index
# Unpack each tuple into x and _ and store x in a list
lst = [x for x, _ in zip(t, range(len(t)))]

# Print the list
print(lst)

Приведенный выше код определяет кортеж t, содержащий четыре элемента. Затем код создает список lst, используя генератор списка, который проходит через каждый элемент кортежа t, и для каждого элемента он создает список [x] и присваивает значение текущего элемента x. Наконец, код печатает полученный список.

Output: ['USA', 'United Kingdom', 'Canada', 'Brazil']

Метод 12: Использование функции eval

Этот метод использует функцию eval для оценки строкового представления кортежа в виде выражения Python, а затем преобразует полученный кортеж в список.

# Code to convert a tuple to list

# Define the tuple t
t =("USA", "Canada","United Kingdom", "Brazil")

# Convert the tuple to a string representation and then use the built-in eval function to evaluate the string as a list
lst = list(eval(str(t)))

# Print the resulting list
print(lst)

Код определяет кортеж t и преобразует его в список lst с помощью функции eval().

  • Функция str() используется для преобразования кортежа в строковое представление, которое затем передается в качестве аргумента функции eval() для оценки и преобразования обратно в список.
  • Наконец, список распечатывается.
Output: ['USA', 'Canada', 'United Kingdom', 'Brazil']

Метод 13: использование вложенных циклов for

Этот метод использует вложенные циклы for для перебора элементов кортежа и добавления каждого элемента в список.

# List of tuple initialization
t = [('apple', 1),('banana', 2),('cherry', 3)]

# using nested for loops
out = []
for tpl in t:
    for item in tpl:
        out.append(item)

# printing output
print(out)

Этот код определяет список кортежей t, содержащих пары (название фрукта, номер). Затем он использует вложенные циклы for для перебора каждого кортежа в t и каждого элемента в каждом кортеже. Каждый элемент добавляется в новый список out, который наконец распечатывается.

Output: ['apple', 1, 'banana', 2, 'cherry', 3]

Метод 14: использование рекурсивного метода

Этот метод использует рекурсивную функцию для преобразования кортежа в список. Функция принимает кортеж в качестве аргумента и возвращает список.

  • Если кортеж пуст, функция возвращает пустой список.
  • Если кортеж содержит только один элемент, функция возвращает список, содержащий этот элемент.
  • Если кортеж содержит более одного элемента, функция возвращает список, содержащий первый элемент, за которым следует результат вызова функции для остальной части кортежа.
# Define a function to convert tuple to list
def tuple_to_list(t):
    # Base case: if the tuple is empty, return an empty list
    if not t:
        return []
    # Base case: if the tuple only has one item, return a list with that item
    if len(t) == 1:
        return [t[0]]
    # Recursive case: append the first item of the tuple to the result of 
    # calling the function with the rest of the tuple
    return [t[0]] + tuple_to_list(t[1:])

# Initialize a tuple
t =(1, 2, 3, 4)
# Call the function to convert the tuple to list
lst = tuple_to_list(t)
# Print the result
print(lst)

В приведенном выше коде определяется функция tuple_to_list, которая принимает кортеж в качестве аргумента t.

  • Функция использует рекурсивный подход для преобразования входного кортежа в список.
Output: [1, 2, 3, 4]

Метод 15: использование функции перечисления

Этот метод использует функцию перечисления для преобразования кортежа в список. Функция enumerate возвращает итерацию, которая создает пары индексов и элементов из входной итерации.

  • В этом случае входная итерация — это кортеж, который вы хотите преобразовать в список.
# This code defines a tuple "t" which contains four elements
t =("USA", "Canada","United Kingdom", "Brazil")

# The list "lst" is constructed using a list comprehension that iterates over the elements in "t"
# The enumerate function is used to get the index and value of each element in "t"
# The list comprehension uses the value of each element and discards the index
lst = [x for i, x in enumerate(t)]

# The resulting list "lst" is printed
print(lst)

Этот код принимает кортеж t строк и преобразует его в список lst.

  • Преобразование выполняется с помощью генератора списка, который перебирает элементы кортежа и их индексы i с помощью enumerate(t) и добавляет каждый элемент x в список lst.
  • Наконец, распечатывается полученный список lst.
Output: ['USA', 'Canada', 'United Kingdom', 'Brazil']

Метод 16: Использование карт() и eval()

Этот метод использует функцию карты для применения функции eval к каждому элементу кортежа, преобразуя каждый элемент из строкового представления объекта Python в реальный объект Python. Затем код использует функцию списка для преобразования полученного объекта карты в список.

# code to convert a tuple to a list using map

# Tuple Initialization
t =('1', '2.5', '3', '4.2')

# Using map to convert tuple elements to list
lst = list(map(eval, t))

# Printing the list
print(lst)

Приведенный выше код определяет кортеж t, состоящий из 4 элементов. Затем элементы кортежа преобразуются в список с помощью функции map() вместе с eval().

  • Функция eval() оценивает выражение и возвращает значение. Полученный список затем распечатывается.
Output: [1, 2.5, 3, 4.2]
Добавить комментарий