Python 理解中变量的赋值
我有一个数据列表,描述服务器之间的通信流(工作区——本质上是一个应用程序名、源、目的地、端口、协议)。我的当前数据在每个观察到的通信中有一行。我想汇总所有共享相同特征但具有不同来源的值,并将它们合并到一个记录中,\n使用多个来源的分隔值 我想做如下事情:Python 理解中变量的赋值,python,tuples,dictionary-comprehension,Python,Tuples,Dictionary Comprehension,我有一个数据列表,描述服务器之间的通信流(工作区——本质上是一个应用程序名、源、目的地、端口、协议)。我的当前数据在每个观察到的通信中有一行。我想汇总所有共享相同特征但具有不同来源的值,并将它们合并到一个记录中,\n使用多个来源的分隔值 我想做如下事情: #Identify unique combinations of values on which to group records dst_combos = list({ (p['Workspace'],p['future ds
#Identify unique combinations of values on which to group records
dst_combos = list({ (p['Workspace'],p['future dst'],p['port'],p['protocol'])
for p in self.policy })
#build records
self.fw_rules = [ {
'Name' : workspace,
'Source' : '\n'.join([choose_identifier(p,'source') for p in self.policy if (p['Workspace'],p['future dst'],p['port'],p['protocol']) == d] ),
'Destination' : choose_identifier(future_dst,'dest'),
'Port' : port,
'Protocol' : protocol
}
for d in dst_combos for workspace, future_dst, port, protocol = d
]
现在我已经发现上面的问题是,我不能在理解中解包元组。我可以把它做成一个列表,只引用列表上的索引,但这会使代码的可读性大大降低。我想有更好的方法,但我不确定那是什么。建议
另外,choose_identifier()只是一个帮助函数,它尝试返回设备名称(如果可用)和地址(如果名称不可用)您可以在列表中解包,您只需要[…对于工作区、未来的dst、端口、dst组合中的协议]