2017-11-20 10 views
-2

私はコードを持っています。Pythonが値を返す方法について混乱しています

scores = [19.0,19.0,20.0,20.0,21.0,21.0] 
new_scores = set(scores) 
print new_scores 

出力: セット([19.0、20.0、21.0])

私の質問: 'セット' を出力する単語の接頭辞はなぜ 。 リスト 'スコア'の一意の値を直接返すように設定されていません。また、 'list(set(score))'を使用すると、接頭語 'set'なしに一意の値のリストのみが出力されます。

+2

'なぜ出力の前に単語 '設定'がありますか? 「どうして? 'set'のために' __str__'メソッドを書いた人に尋ねるべきです。 –

+0

'set'はリストではなくセットを作ります。 – user2357112

答えて

1

setはPythonの型です。あなたが行うと:

set(some_list) 

をあなたが戻ってリストを得ることはありません、あなたはsetを取得します。 Pythonのsetlistと同じではなく、独自のインターフェイスを持っています。たとえば、setにはappendを指定できません。あなたはaddしかできません。

>>> my_set = set(['a', 'b']) 
>>> my_set.append('a') 
Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
AttributeError: 'set' object has no attribute 'append' 
>>> my_set.add('a') 
>>> print(my_set) 
{'a', 'b'} 

Iセットにaddそれはセットのようにを行動だから、私はまだのみ、 'A' を持って注意してください。しかし

list(set(['a'])) 

それが今のリストです。これはもはやので、セットのように振舞う:

>>> my_list = list(set(['a'])) 
>>> my_list.append('a') 
>>> print(my_list) 
['a', 'a'] 

予告listようを振る舞う構造という。

+0

これは実際に混乱のおかげでおかれました。 – Satya

+0

問題はない、私は助けることができてうれしい! –

関連する問題