草庐IT

OrderedDict

全部标签

Python高级用法:有序字典(OrderedDict)与不可变集合(frozenset)

有序字典(OrderedDict)Python标准库的collections模块提供了名为OrderedDict的有序字典。它选择性地接受一个可迭代对象作为初始化参数:fromcollectionsimportOrderedDictOrderedDict((str(number),None)fornumberinrange(5)).keys()OrderedDict还有一些其他功能,例如利用popitem()方法在双端取出元素或者利用move_to_end()方法将指定元素移动到某一端。popitem(last=True)的作用是有序字典返回并删除键值对。如果last为true,则按LIFO顺

python - 'module'对象在pymongo中没有属性 'OrderedDict'错误

我是pymongo的新手。在下面的代码中,db=MySQLdb.connect(DB_HOST,DB_USR,DB_PWD,DB_NAME)cursor=db.cursor()query="SELECT*FROM%sWHEREuserid=\"%s\""%(table,userID)cursor.execute(query)colNames=[i[0]foriincursor.description]rows=cursor.fetchall()objects_list=[]#ThebelowlogicmakesJSONobjetbasedonfetchMySQLrows.forrowi

python - 在 python 列表中计算日期的最佳/最快方法

我有一个日期列表,目标是计算每个日期的出现次数同时保持它们在原始列表中出现的顺序。考虑以下示例:列表only_dates如下所示:[datetime.date(2017,3,9),datetime.date(2017,3,10),datetime.date(2017,3,10),datetime.date(2017,3,11)]我正在尝试使用groupby:importitertoolsday_wise_counts=[(k,len(list(g)))fork,ginitertools.groupby(only_dates)]print(str(day_wise_counts))这打印

python - 如何从列表列表中制作有序字典?

问题是:有一个名称列表和一个列表列表,如何创建一个列表,其中每个项目都是一个有序的字典,名称作为键,列表列表中的项目作为值?从下面的代码中可能会更清楚:fromcollectionsimportOrderedDictlist_of_lists=[['20010103','0.9507','0.9569','0.9262','0.9271'],['20010104','0.9271','0.9515','0.9269','0.9507'],['20010105','0.9507','0.9591','0.9464','0.9575'],]names=['date','open','hig

python - 如何根据列表中的部分键重新排列有序字典

我正在根据列表中的键重新排列一些有序字典。例如:old_OD=OrderedDict([('cat_1',1),('dog_1',2),('cat_2',3),('fish_1',4),('dog_2',5)])现在我有一个组的订单列表。order=['dog','cat','fish']然后将字典中的项目组合在一起得到结果,如下所示:new_OD=OrderedDict([('dog_1',2),('dog_2',5),('cat_1',1),('cat_2',3),('fish_1',4)])我发现了一些很好的相关问题HowtoreorderODbasedonlist和Re-ord

python - 获取OrderedDict的前100个元素

preresult是一个OrderedDict()。我想保存其中的前100个元素。或者保留preresult但删除前100个元素以外的所有内容。结构是这样的stats={'a':{'email1':4,'email2':3},'the':{'email1':2,'email3':4},'or':{'email1':2,'email3':1}}islice能用吗?我的告诉itertool.islice没有items 最佳答案 这是一个使用itertools的简单解决方案:>>>importcollections>>>fromitert

python - 如何在 python 中使用 OrderedDict 将值列表分配给键

你好想要一个有序的字典,其中的键具有值列表。从下面的代码中,我可以得到一个包含键列表的字典,但缺少插入顺序。fromcollectionsimportdefaultdictkeys=['blk','pri','ani']vals1=['blocking','primary','anim']vals2=['S1','S2','S3']dic=defaultdict(list)i=0forkeyinkeys:dic[key].append(vals1[i])dic[key].append(vals2[i])i+=1printdic我得到以下结果defaultdict(,{'pri':['p

python - 如何在 OrderedDict 中获取 "next"项目?

我正在使用OrderedDict随机访问列表,但现在想要列表中的next项目:foo=OrderedDict([('apple',4),('banana',3),('orange',2),('pear',1)])apple=foo['apple']如何只使用foo和apple获得香蕉? 最佳答案 如果您可以访问OrderedDict实现中有意保密的那些部分:>>>classMyOrderedDict(OrderedDict):...defnext_key(self,key):...next=self._OrderedDict__ma

python - PyMySQL 和 OrderedDict

我已经使用PyMySQL一段时间了,并创建了我自己的包装器,我习惯于使用它来速记查询。尽管如此,我一直在使用OrderedDict创建CSV文件,因为我需要保持顺序不变,但我意识到如果我使用PyMySQL查询数据库,我将无法获得数据库返回的顺序。如果我只想转储内容而不是手写订单,那么抽查CSV文件有点烦人。我的问题是,如何将PyMySQL与OrderedDict一起使用?目前我的代码如下:importpymysqlconn=pymysql.connect(host='localhost',user='root',passwd='',db='test')cursor=conn.curso

python - 为什么我不能通过继承 OrderedDict 和 defaultdict 来创建默认的有序字典?

我第一次尝试在collections模块中结合两个字典的特性是创建一个继承它们的类:fromcollectionsimportOrderedDict,defaultdictclassDefaultOrderedDict(defaultdict,OrderedDict):def__init__(self,default_factory=None,*a,**kw):super().__init__(default_factory,*a,**kw)但是,我无法将项目分配给该词典:d=DefaultOrderedDict(lambda:0)d['a']=1Traceback(mostrecen