Есть список
my_array = ['number1', True, 2, 'number3', 4, 'number5', True]
И есть кортеж
my_tuple = ('number1', True, 2, 'number3', 4, 'number5', True)
Кроме явного отличия в синтаксисе (в виде круглых скобочек вместо квадратных), в чём отличие обыкновенного списка от кортежа?
def drawLine():
print('_' * 40)
#________________________________________________________________________________
def main():
my_array = ['number1', True, 2, 'number3', 4, 'number5', True] # Array consists multiple-type variables.
print(type(my_array)) # According to definition, Array is a list.
my_array.append(6) # Is Changable.
for el in my_array:
print(el)
drawLine()
#___________________________________________
my_list = [1,2,3,4,5] # List consists single-type variables.
print(type(my_list))
my_list.append(6) # Is Changable.
for el in my_list:
print(el)
drawLine()
#___________________________________________
my_tuple = ('number1', True, 2, 'number3', 4, 'number5', True) # Tuple consists multiple-type variables.
print(type(my_tuple))
try:
my_tuple.append(6) # Is Unchangable
except Exception as message:
print(message)
for el in my_tuple:
print(el)
drawLine()
#___________________________________________
if __name__ == '__main__':
main()
Попробуй запустить эту программу и всё поймёшь.
На всякий случай также вставлю сюда вывод:
number1
True
2
number3
4
number5
True
6
________________________________________
1
2
3
4
5
6
________________________________________
'tuple' object has no attribute 'append'
number1
True
2
number3
4
number5
True
________________________________________
Press any key to continue . . .
Об этом и многом другом Вы можете узнать на курсе Python Essential.
Приветствую.
Тоже недавно изучаю Python
Вставлю свои 5 копеек
Не смотря на то, что кортеж есть "immutable sequences"
если уж вдруг у Вас будет нужда поизменять последовательность,
можете сконвертировать в список, добавить/вставить/удалить элемент,
потом обратно засунуть в кортеж...
Или использовать лайфхаки типа (из предыдущего примера)
my_tuple = ('number1', True, 2, 'number3', 4, 'number5', True)
print(my_tuple) # оригинал
my_tuple = my_tuple+('added1',)
print(my_tuple) # а-ля добавили элемент в конец
my_tuple = my_tuple[:1]+('added2',)+ my_tuple[1:]
print(my_tuple) # а-лядобавили в индекс 1 (раздвинули)
my_tuple = my_tuple[:1]+('inserted',)+ my_tuple[2:]
print(my_tuple) # а-ля заменили значение :)
my_tuple = my_tuple[:1] + my_tuple[2:len(my_tuple)-1]
print(my_tuple) # а-ля вернули все как было