我在Python 2.7中遇到了关于set的问题。
以下是相应的示例代码块:
letters = set(str(raw_input("Type letters: ")))
正如您所看到的,重点是写一些字母以分配给“字母”供以后使用。但如果我输入“aaabbcdd”,“letters”的输出将返回
set(['a', 'c', 'b', 'd'])
我的问题是如何编写代码,以便输出允许重复这样的代码:
set(['a','a','a','b','b','c','d','d'])
答案 0 :(得分:11)
set
不存储重复项,这就是为什么它被称为set。您应该使用普通str
或list
并在必要时对其进行排序。
>>> sorted(raw_input("Type letters: "))
Type letters: foobar
['a', 'b', 'f', 'o', 'o', 'r']
另一种选择(但你的例子有些过分)是多重集合容器collections.Counter
,可从Python 2.7获得。
>>> from collections import Counter
>>> c = Counter(raw_input("Type letters: "))
>>> c
Counter({'o': 2, 'a': 1, 'r': 1, 'b': 1, 'f': 1})
>>> sorted(c.elements())
['a', 'b', 'f', 'o', 'o', 'r']
答案 1 :(得分:2)
根据定义,集合不允许重复。 使用简单的列表。
在你的情况下:
letters = list(str(raw_input("Type letters: ")))
print sorted(letters)