我有一个代码。
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'
答案 0 :(得分:1)
set
是Python中的一种类型。当你这样做时:
set(some_list)
你没有得到一个列表,你得到一个set
。 Python中的set
与list
不同,并且拥有自己的界面。例如,您不能append
到set
。您只能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
。