2017-09-07 2 views
0

タプルは不変オブジェクトですが、タプルはインデックス作成とスライシングをサポートしています。したがって、変数にタプルが割り当てられている場合、その変数を新しいタプルオブジェクトに再割り当てして、目的のインデックス位置の値を変更することができます。スライス/オブジェクトの再割り当てを使用して1次元タプルを変更する

インデックススライスを使用してこれを実行しようとすると、複数のタプルを含むタプルが返されています。私は元のタプルのコンマで区切られたスライスを渡しているので、なぜこれが起こっているのか理解していますが、(可能であれば)より大きなセットで作業するときに1つの要素が変更された1次元タプルを返すことはできません。データ。

例:

someNumbers = tuple(i for i in range(0, 20)) 
print(someNumbers) 
someNumbers = someNumbers[:10], 2000, someNumbers[11:] 
print(someNumbers) 

次出力:

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) 
((0, 1, 2, 3, 4, 5, 6, 7, 8, 9), 2000, (11, 12, 13, 14, 15, 16, 17, 18, 19)) 

私は一次元タプルを返すのみ必要なインデックス値を変更することはできますか?

答えて

0

あなたはタプルの連結を使用することができます。

someNumbers = tuple(i for i in range(0, 20)) 
print(someNumbers) 
# (2000,) to differentiate it from (2000) which is a number 
someNumbers = someNumbers[:10]+ (2000,) + someNumbers[11:] 
print(someNumbers) 

出力:

(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19) 
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2000, 11, 12, 13, 14, 15, 16, 17, 18, 19) 
関連する問題