[英]python: multiple variables using tuple
我正在閱讀有關tuple
的信息:
一旦創建,元組的值就不能改變。
如果你想一次分配多個變量,你可以使用元組:
name,age,country,career = ('Diana',32,'Canada','CompSci') print(country)
我做了這個..
country = 'India'
print(country)
它被修改了。 怎么會?
您使用元組的方式只是在一行中將單個值分配給單個變量。 這不會將元組存儲在任何地方,因此您將剩下 4 個具有 4 個不同值的變量。 當您更改 country 的值時,您更改的是這個單個變量的值,而不是元組的值,因為字符串變量在 python 中是“按值調用”的。
如果你想存儲一個元組,你可以這樣做:
tup = ('Diana',32,'Canada','CompSci')
然后您可以通過索引訪問這些值:
print tup[1] #32
編輯:我忘了提到的是元組是不可變的,所以你可以訪問這些值,但你不能像使用數組那樣設置它們。 你仍然可以這樣做:
name, age, country, job = tup
但是這些值將是元組的副本——所以改變這些不會改變元組。
以下代碼片段可能有助於理解原因。 在這里, name
、 age
、 country
和career
是單個變量,因此可以修改。
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
您只是在更改變量 Country 而不是元組的值。 你可以這樣測試:
tup=('Diana',32,'Canada','CompSci')
name,age,country,career = tup
print(country)
country = 'India'
print(tup)
輸出應如下所示:
Canada
('Diana', 32, 'Canada', 'CompSci')
您不能更改元組中元素的值,它們是不可變的。 它是元組的主要特征之一。 另一方面,列表是可變的。
這段代碼:
name, age, country, career = ('Diana',32,'Canada','CompSci')
print(country)
做這個:
name = 'Diana'
age = 32
country = 'Canada'
career = 'CompSci'
元組是不可變的,但你還沒有創建一個元組。 要制作一個元組,試試這個:
nameAge = ('Diana', 32)
現在你改變它:
>>> nameAge[1] = 33
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
nameAge[1] = 'a'
TypeError: 'tuple' object does not support item assignment
如您所見,這個元組沒有改變。
在這里,您的要求是使用單行代碼將元組tup值添加到給定變量(如姓名、年齡、國家/地區、職業)中,不是嗎?
題:
tup = ('Diana',32,'Canada','CompSci')
所需的答案是:
name,age,country,career = tup
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.