這個問題有點令人誤解,因爲一個元組是不可變的。我要的是:Python:如何更改(最後一個)元組元素?
有一個元組a = (1, 2, 3, 4)
得到一個元組b
是完全一樣,除了它,比方說,中a
兩次最後一個元素的最後一個參數a
。
=> b ==(1,2,3,8)
這個問題有點令人誤解,因爲一個元組是不可變的。我要的是:Python:如何更改(最後一個)元組元素?
有一個元組a = (1, 2, 3, 4)
得到一個元組b
是完全一樣,除了它,比方說,中a
兩次最後一個元素的最後一個參數a
。
=> b ==(1,2,3,8)
b = a[:-1] + (a[-1]*2,)
什麼我在這裏做是兩個元組的級聯,所述第一含一切,但最後一個元素,和一個新的元組包含最終元素的突變。結果是一個包含你想要的新元組。
注意,對於+
返回一個元組,兩個操作數必須是一個元組。
'(a [-1] * 2)''?以上引發TypeError。 (後綴逗號是必需的一個項目元組) – Skilldrick 2010-08-06 14:11:00
@Skilldrick謝謝,編輯 – Ivo 2010-08-06 14:19:01
下面是做這件事的一種方法:
>>> a = (1, 2, 3, 4)
>>> b = a[:-1] + (a[-1]*2,)
>>> a
(1, 2, 3, 4)
>>> b
(1, 2, 3, 8)
所以在第二行,會發生什麼? a [: - 1]表示除最後一個元素之外的所有元素。 a [-1]是最後一個元素,我們將它乘以兩。 (a [-1] * 2)將結果轉換爲元組,並使用+運算符將切片元組與它連接。結果放在b中。
您可能可以將其適用於您的特定情況。
如果您可以提供幫助,請考慮使用列表,如果您要對元素進行就地操作。 – user37078 2010-08-06 14:14:22
我覺得更有意義,使用元組在我的情況 - 我要代表程序版本,形式 'major.minor.branch.build - >(主要,次要,分公司,建)' ,我需要從給定版本獲取'上一版本'的版本 – 2010-08-06 14:34:54
您還可以使用'distutils.version.StrictVersion'類來獲得版本號。 – SiggyF 2011-03-04 18:05:43