python:使用元组的多个变量

新手上路,请多包涵

我正在阅读 tuple

一旦创建,元组的值就不能改变。

如果你想一次分配多个变量,你可以使用元组:

>  name,age,country,career = ('Diana',32,'Canada','CompSci')
> print(country)
>
> ```

我做了这个..

country = ‘India’ print(country) “`

它被修改了。怎么来的?

原文由 Shri 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 301
2 个回答

您使用元组的方式只是在一行中将单个值分配给单个变量。这不会将元组存储在任何地方,因此您将剩下 4 个具有 4 个不同值的变量。当您更改 country 的值时,您更改的是这个单个变量的值,而不是元组的值,因为字符串变量在 python 中是“按值调用”的。

如果你想存储一个元组,你可以这样做:

 tup = ('Diana',32,'Canada','CompSci')

然后您可以通过索引访问这些值:

 print tup[1] #32

编辑:我忘了提到的是元组是不可变的,所以你可以访问这些值,但你不能像使用数组那样设置它们。你仍然可以这样做:

 name, age, country, job = tup

但是这些值将是元组的副本——所以改变这些不会改变元组。

原文由 Philip Feldmann 发布,翻译遵循 CC BY-SA 3.0 许可协议

以下代码片段可能有助于理解原因。 Here, name , age , country and career are single variables and therefore can be modified.

 t = (name, age, country, career) = ('Diana',32,'Canada','CompSci')

print(t)            # ('Diana', 32, 'Canada', 'CompSci')
print(country)      # Canada

country = 'India'

print(t)            # ('Diana', 32, 'Canada', 'CompSci')
print(country)      # India

t[2] = 'India'
# The error occurs as expected
TypeError: 'tuple' object does not support item assignment

原文由 SparkAndShine 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题