如何订购套装?

2024-10-01 11:22:49 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:谢谢。我假设集合是有序的,因为输出几乎是按字母顺序排列的。但是是的,我想要一套有序的。在

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

如何创建有序集?在

示例:如果我使用字符串“mathematics”和字符串“abcdefghiklmnopqrstuvwxyz”,则新字符串基本上应该是“matheisbdfgklnopqruvwxyz”(假设我有将字符串大写的代码)。此字符串中没有'J',因此不是拼写错误。在

我尝试从变量'secret'中获取唯一字符,从变量'alpha'获取唯一字符,并从这两个变量中获取有序的唯一字符。在


Tags: 字符串alpha编辑secretdefcreate字母table
2条回答

听起来你想要一个有序的集合,按照第一个字符串中项目的第一次出现排序,或者(对于第一个字符串中不存在的项目)第二个字符串中该项目的第一次出现排序。在

最简单的事情就是有一个集合和一个字符串。迭代第一个字符串;对于每个项,如果它不在集合中,则将其添加到集合中并将其附加到字符串中。然后对第二个字符串执行相同的操作。在

Python没有OrderedSet;通常我们用^{}来伪装它。在

例如:

>>> 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那样有效,但对于政府工作来说,这往往足够接近。在

相关问题 更多 >