4

set()文字列の呼び出しは常に同じ (非アラベト) 順序に解決されるように見えるという点で、ある程度の一貫性があるようです。

set([1,2,3]) & set([1,2,3,4])

とそのごちゃまぜのいとこ

set([2,3,1]) & set([4,3,1,2])

整然とした外観になりset([1,2,3])ます。

一方、次のようなもう少し際どいようなもの

from random import randint
set([randint(0,9) for x in range(3)])

set([9, 6, 7])...のようなものを与えることがあります

...ここで何が起こっているのですか?

4

1 に答える 1

5

セットは順序付けられていないコレクションと見なす必要があります

これらはハッシュ テーブルに格納されます。

さらに、要素を追加し続けると、ハッシュはより大きなテーブルに移動するため、順序が劇的に変わる可能性があります。

異なる Python バージョン/実装間で順序が同じになるという保証はありません。

于 2013-02-13T22:16:29.073 に答える