映画のエンドロール観る派?観ない派?

pythonの集合は、データに順番が無いようですが、
a = {1, 2, 3}

a = {1, 4, 3}
のように2番目のデータを2→4に変更することってできるのでしょうか?

A 回答 (4件)

直接、更新するメソッドはないので


4を追加して、2を削除します。
a.add(4)
a.remove(2)
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2018/10/31 17:14

順番無いので「2番目」という指定が不可能。


removeが差集合で削除、addか和集合で追加
で出来ます。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2018/10/31 17:15

>2→4に変更すること


数値を変更する事は可能みたいですが、

>a = {1, 4, 3}のように2番目のデータ
変更した後は{1,3,4}と順番は変わります。
すなわち『2番目のデータを変更する』という意味では無理なのでは?(Python余り経験無いですが、検索した範囲ではそう感じました)

>>> a={1,2,3}
>>> b=list(a)
>>> b[1]=4
>>> a=set(sorted(b,key=b.index))
>>> a
{1, 3, 4}
>>> b
[1, 4, 3]

リスト(b)ではご要望のように出来ますが、集合(a:set)では並び変わってしまうのでは?
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2018/10/31 17:15

{4 if x == 2 else x for x in a}

    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2018/10/31 17:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報