草庐IT

有序表

全部标签

python - 使用有序字典作为有序集

现在Python3.7生成了保留顺序的字典officiallypartofthelanguagespec我一直在努力思考如何最好地使用此属性,而不是实现细节。今天,我发现我需要一个顺序保留集,并且认为字典可以解决问题。假设我们有一个可哈希元素列表。我们想要一个唯一条目的列表,并且我们希望根据第一次出现来保持这些条目的顺序。一个简单的字典构造函数应该可以解决问题:ls="Beautifulisbetterthanugly.Explicit..."uniques=list({s:0forsinls})>>>['B','e','a','u','t','i','f','l','','s','b

python - 在 python 中使用有序字典作为对象字典

我不知道为什么这不起作用:我正在使用odict来自PEP372的类(class),但我想将其用作__dict__成员,即:classBag(object):def__init__(self):self.__dict__=odict()但出于某种原因,我得到了奇怪的结果。这有效:>>>b=Bag()>>>b.apple=1>>>b.apple1>>>b.banana=2>>>b.banana2但是尝试访问实际的字典是行不通的:>>>b.__dict__.items()[]>>>b.__dict__odict.odict([])它变得更奇怪了:>>>b.__dict__['tomato']

python - 从 peewee 模型中获取有序的字段名称

我想用peewee来create来自csv的记录。看起来语法需要关键字参数:user=User.create(username='admin',password='test')如果csv中的行看起来像(admin,test),那么知道字段名称('username','password')会很方便形成一个要传入的字典(看起来我无法传入模型的值列表来推断相应的字段是什么)。User是否有一个属性,其中包含按定义顺序排列的字段名称列表?谢谢 最佳答案 看起来是User._meta.get_field_names()我刚刚看到有人在anot

python - 将前 N 个 key 对从有序字典获取到另一个

我有一个按值排序的有序字典(OrderedDict)。我怎样才能获得最重要的(比如25个)键值并将它们添加到新字典中?例如:我有这样的东西:dictionary={'a':10,'b':20,'c':30,'d':5}ordered=OrderedDict(sorted(dictionary.items(),key=lambdax:x[1],reverse=True))现在ordered是一个有序的字典,我想创建一个字典,比如取前2个最常用的项目及其键:frequent={'c':30,'b':20} 最佳答案 collection

python - Python中两个列表的有序交集

我知道在Python中,如果我有:list_1=[1,2,3]list_2=[2,3,4]我可以执行以下操作来找到两者之间的交集:list(set(list_1)&set(list_2))#=[2,3]但这种方法存在一个问题:集合不像列表那样保持秩序。所以如果我真的有:list_1=[3,2,1]list_2=[2,3,4]我得到:list(set(list_1)&set(list_2))#=[2,3]即使我更喜欢从第一个列表中获取顺序,即:#=[3,2]是否有另一种交集技术可以使生成的“交集”与第一个列表保持相同的顺序? 最佳答案

python - 大小有序幂集的索引

我希望能够在不将整个集合扩展到内存的情况下索引幂集的元素(laitertools)此外,我希望索引按基数排序。所以索引0应该是空集,索引2**n-1应该是所有元素到目前为止,我发现的大多数文献都涉及以感应方式生成幂集。它不会让您只是潜入任何指数。我建立此索引的动机是为分布式执行分割问题,如果远程机器可以在任何地方潜入而无需跨集群共享迭代器引用,这将很有帮助。编辑:Blckknght建议我采用如下所示的解决方案fromscipy.miscimportcombdefkcombination_to_index(combination):index=0combination=sorted(co

python - 从列表理解创建有序字典?

Hereisalistcomprehension:L=[{k:d[k](v)for(k,v)inl.iteritems()}forlinL]在哪里L是有序字典列表(即collections.OrderedDict的对象),其中字典具有相同的键集。d是另一个有序字典,它也与前面的有序字典具有相同的键集。对于每个key,d[key]是一个可以应用于L[i][key]的函数,即d[key](L[i][key])。所有给定的字典都是有序的字典,并且在它们的键中具有相同的顺序。但是代码会创建一个无序字典。如何按照与给定有序词典相同的键顺序创建有序字典? 最佳答案

python - 如何在整数数组中找到所有有序的元素对,其总和位于给定的值范围内

给定一个整数数组,找出数组中所有有序元素对的个数,其总和在给定范围[a,b]内这是相同的O(n^2)解决方案'''countsallpairsinarraysuchthatthesumofpairliesintherangeaandb'''defcountpairs(array,a,b):num_of_pairs=0foriinrange(len(array)):forjinrange(i+1,len(array)):total=array[i]+array[j]iftotal>=aandtotal我知道我的解决方案不是最优的执行此操作的更好算法是什么。 最

python - 在python中更改有序字典的顺序

我有一本有序的字典,想改变个别的顺序。在下面的代码示例中,我想将项目3(人)及其值移动到位置2。因此顺序将是动物、人、食物、饮料。我该如何处理他的问题?importcollectionsqueue=collections.OrderedDict()queue["animals"]=["cat","dog","fish"]queue["food"]=["cake","cheese","bread"]queue["people"]=["john","henry","mike"]queue["drinks"]=["water","coke","juice"]printqueue

python - 有序集 Python 2.7

我有一个列表,我正试图从中删除重复项。我使用的是python2.7.1,所以我可以简单地使用set()函数。但是,这会重新排序我的列表。这对我的特殊情况来说是NotAcceptable。下面是我写的一个函数;这是做什么的。但是我想知道是否有更好/更快的方法。也将不胜感激。defordered_set(list_):newlist=[]lastitem=Noneforiteminlist_:ifitem!=lastitem:newlist.append(item)lastitem=itemreturnnewlist上述函数假定没有任何项目是无,并且项目是有序的(即,['a','a','a