Python3の集合について重複を取り除き昇順で出力しなさいという問題で解答が以下になってました入力: 1 2 3 3 4 5a = {int(x) for x in input().split()} # a = {1, 2, 3, 4, 5}print(\u0026quot; \u0026quot;.join(map(str, a)))自分の認識では集合は順序が決まってないと思ってたので今までこれではダメだという認識でしたこれを出力すると確かに12345と最初の順序どうりに昇順になりますがこれはたまたまなのではないのでしょうか?代わりにこちらの集合で試してみると順序が入れ替わってますa = {5, 3, 8, 5} # a = {8, 3, 5}これはどういうことでしょうか?

1件の回答

回答を書く

1189449

2026-01-27 15:10

+ フォロー

言語仕様(PEP)では順序は保証されていないので

a = {int(x) for x in input().split()}

print(*sorted(a))

の方が適切です



ただし, 言語実装(CPython)をみるとわかりますが, 入力データに重複がない場合はイテレーション順はその index 順になります。これは保証されているわけではありません

うったえる有益だ(0シェアするブックマークする

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有