Это список только из одного кортежа . Этот кортеж имеет два элемента: строку и объект MainPage
, чем бы он ни был.
Оба списков и кортежей являются упорядоченными группами объектов, не имеет значения, какой тип объекта, они могут быть неоднородными в обоих случаях.
Основное различие между списками и кортежами заключается в том, что кортежи неизменны , как строки.
Например, мы можем определить список и кортеж:
>>> L = ['a', 1, 5, 'b']
>>> T = ('a', 1, 5, 'b')
мы можем изменить элементы L, просто присвоив им новое значение
>>> print L
['a', 1, 5, 'b']
>>> L[1] = 'c'
>>> print L
['a', 'c', 5, 'b']
Это неверно для кортежей
>>> print T
('a', 1, 5, 'b')
>>> T[1] = 'c'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
Это потому, что они неизменны.
Элементы кортежей могут быть изменяемыми, и вы можете изменить их, например:
>>> T = (3, ['a', 1, 2], 'lol')
>>> T[1]
['a', 1, 2]
>>> T[1][0] = 'b'
>>> T
(3, ['b', 1, 2], 'lol')
но список, который мы редактировали, все тот же объект, мы не заменили элемент кортежа.