对python中的set如何返回值感到困惑

时间:2017-11-20 06:51:29

标签: python list set

我有一个代码。

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])

我的问题: 为什么“set”这个词在输出前面加上了前缀。 未设置应该直接返回列表“得分”中的唯一值。此外,如果我使用'list(set(scores))'那么我只得到唯一值列表的预期输出而没有前缀词'set'

1 个答案:

答案 0 :(得分:1)

set是Python中的一种类型。当你这样做时:

set(some_list)

你没有得到一个列表,你得到一个set。 Python中的setlist不同,并且拥有自己的界面。例如,您不能appendset。您只能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'}

请注意,当我add到集合时,我仍然只有'a',因为它的表现就像一个集合。

然而:

list(set(['a']))

现在是一个列表。因此不再像集合那样:

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

请注意结构的行为,如list