我需要在一个包含多个id的字典中减去两个值(start和end)。我需要一个循环,可以为每个值执行此操作,并将值保存在一个新字典中。你知道吗
m = re.findall(r'([0-9]*\.[0-9]*) IP [(]tos 0x0, ttl ([0-9]*), id ([0-9]*)', x)
for num2, ttl, id in m:
dicts[id] = {'start': float(num2),'ttl': ttl,'id': id,'ip': '','end': 0}
m2 = re.findall(r'(\n[0-9]+\.[0-9]*) IP.*proto ICMP.*\n.*(\b[0-9]{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b) >.*\n.*id ([0-9]+)', x)
for num1, ip2, id in m2:
num1s = {'end': float(num1)}
dicts[id].update(num1s)
dicts[id].update({'ip': ip2})
for start, end in dicts[id]:
total = end - start
dicts的一个示例输出是 {'30639':{'start':1296184417.509661,'end':1296184417.51007,'ttl':'3','ip':'128.192.254.49','id':'30639}
您可能试图同时比较多个键。在Python中的嵌套
dict
结构中,您需要迭代每个父键(在您的例子中是id
),然后比较子键/值(安全地)。你知道吗以下是您应该做的:
例如:
dicts[id].get('end', 0)
安全地查找“end”键对应的值,如果找不到,则返回0。你知道吗相关问题 更多 >
编程相关推荐