def create_table(secret):
sec = set(secret)
alpha = set("abcdefghiklmnopqrstuvwxyz")
bet = alpha - sec
newSecret = secret & bet
print newSecret
OUTPUT: set(['A', 'C', 'B', 'E', 'D', 'G', 'F', 'I', 'H', 'K', 'M', 'L', 'O', 'N', 'Q', 'P', 'S', 'R', 'U', 'T', 'W', 'V', 'Y', 'X', 'Z'])
如何创建有序集?
示例:如果我取字符串“mathics”和字符串“abcdefghiklmnopqrstuvwxyz”,基本上新字符串应为“MATHEICSBDFGKLNOPQRUVWXYZ”(假设我的代码大写字符串)。这个字符串中没有'J',所以它不是拼写错误。
我正在尝试从变量'alpha'获取唯一字符,从变量'alpha'中获取唯一字符,并从两者中获取有序唯一字符。
答案 0 :(得分:5)
Python没有OrderedSet
;通常我们用OrderedDict
伪造它。
例如:
>>> from collections import OrderedDict
>>> s = "mathematics"
>>> alpha = "abcdefghiklmnopqrstuvwxyz"
>>> d = OrderedDict.fromkeys(s+alpha)
>>> d
OrderedDict([('m', None), ('a', None), ('t', None), ('h', None), ('e', None), ('i', None), ('c', None), ('s', None), ('b', None), ('d', None), ('f', None), ('g', None), ('k', None), ('l', None), ('n', None), ('o', None), ('p', None), ('q', None), ('r', None), ('u', None), ('v', None), ('w', None), ('x', None), ('y', None), ('z', None)])
>>> ''.join(d)
'matheicsbdfgklnopqruvwxyz'
这不像OrderedSet
那样有效,但通常足够接近政府工作。
答案 1 :(得分:0)
听起来你想要一个有序集合,按第一个字符串中第一次出现的项目排序,或者(对于第一个字符串中不存在的项目)第一次出现的项目第二个字符串。
最简单的方法是拥有一个集合和一个字符串。迭代第一个字符串;对于每个项目,如果它不在集合中,则将其添加到集合中并将其附加到字符串。然后对第二个字符串执行相同的操作。