【发布时间】:2016-01-16 12:01:13
【问题描述】:
import re
ports = {}
file = open("Asn1_TCPdump_format3.txt")
def makerPorts(src, port, ports):
if src in ports:
ports[src][0].append(port)
else:
ports[src] = [port]
return ports
for k, v in ports.items():
print(k, v)
我在这里要做的是制作一个字典,其中 KEY 是 IP 地址,值是每个 IP 地址尝试连接的端口列表。我觉得这应该很简单,但我很难理解这个?
我的正则表达式一切正常,损坏的部分是 makerPort 函数,我希望该函数获取一个 ip、一个端口和一个字典。如果 ip 是一个键,它会检查字典,如果是,它会将端口添加到端口列表中。如果 IP 还不是键,则将 ip 添加为键,将端口添加为列表中的值
【问题讨论】:
-
从
else语句看来,您的字典的格式好像是 d = {ip1: [port11, port12], ip2: [port21, port22, port23]}。如果是这样,您的if语句很奇怪,因为您试图将append转换为一个数字(port[src][0]是一个数字,而不是一个列表)。
标签: python list dictionary append