我是python新手,对字典操作有疑问。
我正在维护一本词典,如下所示-
dict = {counter:distance}.
例如-
^{pr2}$对于一个给定的键,我希望找到到达该键的总距离。
对于给定的key=5,返回的总距离应为(1+10+27+10) = 48.
我想出了一个简单的解决方案如下-
input_key = raw_input()
dist = 0
for key,value in dict:
if key == input_key
break
else
dist += value
return dist
我正在寻找一些内置函数或库,我可以用来实现这一点。在
我的要求是将数据写入输出文件。 格式如下-docid\t termid\t编号 100\t2943\t3
我有在每个docid和termid上运行的for循环。 Termid可以在循环中重复,在这种情况下,我需要修改输出文件中的行。因此,如果docid 100和termid 2943再次被输入数字为58,则上述行需要更改为- 100\t2943\t3\t58
这样,可以根据docid和termid多次修改输出文件中的同一行。在
我希望减少在输出文件中搜索“^docid\ttermid”模式,然后修改行所花费的时间。因此,我计划维护一个字典,它应该在输出文件中保持偏移量。 这样我就可以遍历字典,得到文件中的偏移量,读取行并修改它。在
字典不是有序映射。您需要使用其他序列数据结构,如果需要映射,则使用^{} 。在
而且,遍历字典不会生成键值对,而是生成键。在
下面是一个使用^{} 的解决方案:
也许是这样的:
例如:
^{pr2}$请注意,您给出的代码将不能一致地工作,因为在dictionary对象中键顺序是未定义的;键值对可以按任何顺序迭代。这个答案中的代码将迭代数字1到
input_key
-1,将字典中存储在这些键处的值相加。在你想做的事不能用dict来做,而得到可重复的答案。Python字典是无序的。您将在Python实现中得到任意答案。在
根据您使用的Python版本,您可以使用OrderedDict。在
相关问题 更多 >
编程相关推荐