【发布时间】:2010-01-23 10:51:16
【问题描述】:
我有来自机器的数据(通过 pexpect),我使用正则表达式将其解析成这样的字典
for line in stream:
if '/' in line:
# some matching etc which results in getting the
# machine name, an interface and the data for that interface
key=str(hostname)+":"+r.groups()[0][0:2]+r.groups()[2]
dict[key]=str(line[3])
一切正常,当我读回来时,我得到了很多这样的台词
machine1:fe0 <data>
<data> 是一个字符串或整数
我现在意识到接口可以存在多个数据,并且似乎在这种情况下,我每次遇到它时都会覆盖键的值。我想要的是以一种突出显示该界面存在多个信息的事实的方式使密钥独一无二。例如。如果 fe0 有 3 个实例或 fe1 有 4 个
machine1:fe0:3 <data> <data> <data>
machine1:fe1:4 <data> <data> <data> <data>
为此,我不介意单个实例后面是否有 1 来告诉我。
希望这很清楚,有人可以指出我正确的方向 - 非常感谢
【问题讨论】:
-
你想要的数据结构是一个multimap,下面的defaultdict(list)是通常的实现。
标签: python dictionary