То, как вы использовали кортеж, заключалось в том, чтобы назначать одиночные значения одиночным переменным в одной строке. Это не сохраняет кортеж в любом месте, поэтому вы останетесь с 4 переменными с 4 различными значениями. Когда вы меняете значение страны, вы изменяете значение этой единственной переменной, а не кортежа, поскольку строковые переменные являются «вызовом по значению» в python.
Если вы хотите сохранить кортеж вы могли бы сделать это следующим образом:
tup = ('Diana',32,'Canada','CompSci')
Тогда вы можете получить доступ к значениям с помощью индекса:
print tup[1] #32
Edit: Что я забыл упоминалось, что кортежи не изменяются, поэтому вы можете получить доступ к значениям, но вы не можете установить их так, как вы могли бы с массивами. Вы все еще можете сделать:
name, age, country, job = tup
Но значения будут копии кортежа - поэтому изменение их обыкновение менять кортеж.
Вы не меняете значения * tuple *, а только присваиваете значение переменной. Кортеж '('Diana', 32, 'Canada', 'CompSci')' * распакован * для 4 различных переменных 'str'. Следовательно, вы можете переназначить переменную 'country'. Однако, если вы хотите сделать что-то вроде '('Diana', 32, 'Canada', 'CompSci') [2] =" India "', вы не можете, поскольку вы пытаетесь изменить значение 'неизменяемого' кортежа. –
^вероятно, опубликуйте это как ответ – Keiwan
Хорошо. Он будет рассматривать «кортеж» только в том случае, если я назначу его одной переменной? – Shri