web-dev-qa-db-ja.com

タプルのタプルに別のタプルを追加する

次のタプルのタプルがあります。

my_choices=(
         ('1','first choice'),
         ('2','second choice'),
         ('3','third choice')
)

そして、最初に別のタプルを追加したい

another_choice = ('0', 'zero choice')

これどうやってするの?

結果は次のようになります。

final_choices=(
             ('0', 'zero choice')
             ('1','first choice'),
             ('2','second choice'),
             ('3','third choice')
    )
48
John

another_choiceからタプルの別のタプルを作成し、連結します。

final_choices = (another_choice,) + my_choices

あるいは、括弧の代わりに角括弧を使用して、タプルの代わりにmy_choicesをタプルのリストにすることを検討してください。

my_choices=[
     ('1','first choice'),
     ('2','second choice'),
     ('3','third choice')
]

それからあなたは単にすることができます:

my_choices.insert(0, another_choice)
52

リストに変換したり元に戻したりしないでください。無駄なオーバーヘッドです。 +はタプルを連結します。

>>> foo = ((1,),(2,),(3,))
>>> foo = ((0,),) + foo
>>> foo
((0,), (1,), (2,), (3,))
16
Katriel

または、タプル連結を使用します

つまり.


final_choices = (another_choice,) + my_choices
4
Brendan

持っているのは、タプルのリストではなく、タプルのタプルです。タプルは読み取り専用です。代わりにリストから始めてください。

>>> my_choices=[
...          ('1','first choice'),
...          ('2','second choice'),
...          ('3','third choice')
... ]
>>> my_choices.insert(0,(0,"another choice"))
>>> my_choices
[(0, 'another choice'), ('1', 'first choice'), ('2', 'second choice'), ('3', 'third choice')]

list.insert(ind、obj)は、リスト内の指定されたインデックスにobjを挿入します...リスト内の任意の位置に任意のオブジェクトを押し込むことができます。

1
whaley