【发布时间】:2013-03-03 07:06:38
【问题描述】:
我有一个有序的字典,如下所示:
source =([('a',[1,2,3,4,5,6,7,11,13,17]),('b',[1,2,3,12])])
我想先计算每个key的值的长度,然后计算它的sqrt,说是L。
将L插入到可以无余数的位置,其他数字后插入“1”。
例如source['a'] = [1,2,3,4,5,6,7,11,13,17]长度为9。
因此len(source['a']) 的 sqrt 是 3。
在可以被3整除的位置插入数字3(例如位置3,位置6,位置9)如果数字的位置不能被3整除,则在其后插入1。
要得到如下结果:
result=([('a',["1,1","2,1","3,3","4,1","5,1","6,3","7,1","11,1","13,3","10,1"]),('b',["1,1","2,2","3,1","12,2"])]
我不知道如何将列表中的项目更改为字符串对。顺便说一句,这不是我的家庭作业,我正在尝试构建一个布尔检索引擎,源数据太大,所以我在这里创建了一个简单的示例来解释我想要实现的目标:)
【问题讨论】:
-
如果这是一个标准的 Python 字典,那么它不是有序的。您需要使用 collections.OrderedDict(也许您会这样做?)。
-
向我们展示您的尝试或您认为可以解决问题的方法总是一个好主意,即使完全错误。
标签: python python-2.7 insertion