2017-08-25 2 views
-4

ソート済みリストのセットを作成すると、ソートされていないセットが生成されるのはなぜですか?ソート済みリストからセットを作成するとき、出力セットはソートされません

list.sort()は、そのままリストをソートする必要があります。 セット(リスト)は、リストの一意の値を返す必要があります。

しかし、結果セットがソートされないのはなぜですか?私はセットを作り、それをlist2に戻し、次にlist2をソートする必要がありますか? (Pythonの2.7.6を使用して)

コード:

def longest(s1, s2): 
    list = [] 
    s = s1 + s2 
    for letter in s: 
     list.append(letter) 
    print list 
    list.sort() 
    print list 
    unique = set(list) 
    print unique 
    s4 = "" 
    for item in unique: 
     s4 = s4 + item 
    print s4 
    return s4 

コンソール出力:

['a', 'r', 'e', 't', 'h', 'e', 'y', 'h', 'e', 'r', 'e', 'y', 'e', 's', 't', 'h', 'e', 'y', 'a', 'r', 'e', 'h', 'e', 'r', 'e'] 
['a', 'a', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'h', 'h', 'h', 'h', 'r', 'r', 'r', 'r', 's', 't', 't', 'y', 'y', 'y'] 
set(['a', 'e', 'h', 's', 'r', 't', 'y']) 
aehsrty 
+1

セットのを注文したので、なぜ彼らは、ソート返す関数を実装していませんか?ソートされたセットに 'sort(set(x))'を使用したい場合は、https://stackoverflow.com/questions/15181867/understanding-the-set-function –

+2

の定義による順序は未定義です –

答えて

0

セットは、自然に順序付けられていないデータ構造です。 Python 2.7の場合、セットは必ずしも注文を保持するとは限りませんが、Python 3.xでは注文を保存する必要があります。

0

Setは、一意の要素を持つことを保証し、デフォルトでは並べ替えません。あなたはソート(集合(リスト))を使用する必要があり

+0

ありがとうそれは、モバイルからの入力です。 – JRG

関連する問題