回答:
タプルは不変です。構築後、それらに含まれる変数を変更することはできません。ただし、それらを連結またはスライスして、新しいタプルを形成することができます。
a = (1, 2, 3)
b = a + (4, 5, 6) # (1, 2, 3, 4, 5, 6)
c = b[1:] # (2, 3, 4, 5, 6)
そしてもちろん、既存の値からそれらを構築します:
name = "Joe"
age = 40
location = "New York"
joe = (name, age, location)
a = ()
、b= a + (5)
bは5になります。したがってb= a + (5,)
、はにつながりb = (5,)
ます。タプル。
空のタプルから始めることができt = ()
ます。で追加でき+
ますが、別のタプルを追加する必要があります。単一の要素を追加する場合は、それをシングルトンにしますt = t + (element,)
。末尾のコンマの有無にかかわらず、複数の要素のタプルを追加できます。
>>> t = ()
>>> t = t + (1,)
>>> t
(1,)
>>> t = t + (2,)
>>> t
(1, 2)
>>> t = t + (3, 4, 5)
>>> t
(1, 2, 3, 4, 5)
>>> t = t + (6, 7, 8,)
>>> t
(1, 2, 3, 4, 5, 6, 7, 8)
t = ()
次にt += (1,)
まだ言及されていない別の戦術は、リストへの追加を使用して、最後にリストをタプルに変換することです:
mylist = []
for x in range(5):
mylist.append(x)
mytuple = tuple(mylist)
print mytuple
戻り値
(0, 1, 2, 3, 4)
タプルを関数の引数として渡す必要があるときに、これを使用することがあります。これは、numpy関数によく必要です。
list(someTuple)
機能することを知っておくと便利です。2つのオブジェクトタイプは明らかに交換可能です
Python 3では、を使用*
して、新しい要素とともに、元のタプルから要素の新しいタプルを作成できます。
>>> tuple1 = ("foo", "bar")
>>> tuple2 = (*tuple1, "baz")
>>> tuple2
('foo', 'bar', 'baz')
tuple1 + ("baz",)
。
「情報がDBに追加されたら、タプルを削除する必要がありますか?これは、タプルが必要なくなったことを意味します。」
番号。
一般に、何かを削除する理由はありません。削除にはいくつかの特別なケースがありますが、非常にまれです。
狭いスコープ(つまり、クラス内の関数定義またはメソッド関数)を定義するだけで、オブジェクトはスコープの最後にガベージコレクションされます。
何も削除する必要はありません。
[注意。私は、オブジェクトを削除しようとするだけでなく、常に「リセット」メソッドを記述してオブジェクトをクリアする男と協力しました。彼がそれらを保存して再利用しようとしていたように。また、ばかげた考えです。使用しなくなったオブジェクトは無視してください。コードの十分小さなブロックで関数を定義する場合、これ以上考える必要はありません。]
他の回答で述べたように、既存のタプルを変更することはできませんが、常に新しいタプルを作成できます(既存のタプルや他のソースから一部またはすべてのアイテムを取得する場合があります)。
たとえば、関心のあるすべてのアイテムがスカラー変数にあり、それらの変数の名前がわかっている場合は、次のようになります。
def maketuple(variables, names):
return tuple(variables[n] for n in names)
たとえば、この例のように使用されます:
def example():
x = 23
y = 45
z = 67
return maketuple(vars(), 'x y z'.split())
もちろん、この1つのケースはより簡単に(x, y, z)
(または名前を完全に前に付けて(23, 45, 67)
)表現されますが、このmaketuple
アプローチはいくつかのより複雑なケース(たとえば、使用する名前も動的に決定され、計算)。