list
и tuple
оба встроены в классы Python.
Давайте сначала поговорим о Lists
Списки являются последовательностями и используются для хранения коллекций однородных предметов.
Конструктор списка:
list([iterable])
Вы можете создать список несколькими способами:
- С парой квадратных скобок, которые обозначают пустой список. Например:
[]
- С квадратными скобками и элементами, разделенными запятыми. Например:
[a, b, c]
- С помощью понимания списка. Например:
[x for x in iterable]
- С помощью конструктора типов. Например:
list()
или list(iterable)
Конструктор list(iterable)
создает список, элементы которого совпадают и в том же порядке, что и элементы итерируемого.
Здесь iterable
может быть либо последовательностью, либо объектом, поддерживающим итерацию, либо объектом итератора.
Если iterable
уже является списком: Возвращается копия списка
Например:
>>> list('abc')
['a', 'b', 'c']
>>> list( (1, 2, 3) ) # Next let's understand what a tuple is
[1, 2, 3]
Теперь поговорим о Tuples
Кортежи - это последовательности, которые используются для хранения коллекций разнородных данных.
Конструктор кортежей:
tuple([iterable])
Вы можете создавать кортежи разными способами:
- С парой скобок для обозначения пустого кортежа. Например:
()
- Со многими пунктами, разделенными запятыми. Например:
(a, b, c)
- С запятой в конце для одиночного кортежа. Например:
a,
или (a,)
- С помощью
tuple()
конструктор. Например: tuple()
или tuple(iterable)
Этот конструктор tuple(iterable)
создает кортеж с идентичными элементами и в том же порядке, что и элементы итерируемого. iterable
может быть последовательностью или итератором.
Если iterable
уже является кортежем, его копия будет возвращена.
Например:
>>> tuple('abc')
('a', 'b', 'c')
>>> tuple( [1, 2, 3] )
(1, 2, 3)
>>> tuple
()
>>> t = 1,2,3
>>> t
(1, 2, 3)
Обратите внимание, что на самом деле кортеж - это запятая, а не скобки. Круглые скобки являются необязательными, за исключением случая пустого кортежа или когда они необходимы, чтобы избежать синтаксической неоднозначности.
Взяв ваш вопрос в качестве примера:
Вы хотите дать кортеж для создания списка. Таким образом, чтобы определить, что вход в конструктор списка является кортежем, его необходимо заключить в скобки.
thislist = list(("apple", "banana", "cherry"))
Здесь ("apple", "banana", "cherry")
создаст кортеж неявно. Затем этот кортеж ("apple", "banana", "cherry")
является входом iterable
для конструктора list
и возвращает объект списка.
>>> type(("apple", "banana", "cherry"))
<class 'tuple'>
Когда вы предоставляете ["apple", "banana", "cherry"]
, объект списка создается неявно и возвращается.
>>> type(["apple", "banana", "cherry"])
<class 'list'>