如何比较基于键的词典列表并基于匹配项创建新列表?

时间:2019-06-24 15:15:36

标签: python

我正在尝试编写代码以匹配字典列表中的每个键并在匹配项之外创建列表。

我已经使用键对字典列表进行了排序,现在需要一些线索来编写可以实现预期结果的代码。

原始列表:

sorted_list = [{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'deny', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object ISCSI_Prod', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'deny', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object HPS-JNJ-LCL', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'deny', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object actavis_hci_lan', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'deny', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object OpenSys', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'deny', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object Insmed-LAN', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'deny', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object Endo_LAN', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'permit', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': '', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': 'any4', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': '', 'remark': 'remark remark Block access to other clients', 'acl_filter': '', 'protocol': '', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': '', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': '', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DR_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'permit', 'protocol': 'icmp', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': '', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': 'any4', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DR_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'permit', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': '', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': 'any4', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DR_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'permit', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object COMVAULT1', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DR_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'permit', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object COMVAULT2', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}]

预期结果:

l1 = [{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'deny', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object ISCSI_Prod', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'deny', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object HPS-JNJ-LCL', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'deny', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object actavis_hci_lan', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'deny', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object OpenSys', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'deny', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object Insmed-LAN', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'deny', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object Endo_LAN', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DMZ_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'permit', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': '', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': 'any4', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}]

l2 = [{'acl_name': 'DMZ_access_in', 'acl_type': '', 'remark': 'remark remark Block access to other clients', 'acl_filter': '', 'protocol': '', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': '', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': '', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}]

l3 = [{'acl_name': 'DR_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'permit', 'protocol': 'icmp', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': '', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': 'any4', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}]

l4 = [{'acl_name': 'DR_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'permit', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': '', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': 'any4', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}]

l5 = [{'acl_name': 'DR_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'permit', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object COMVAULT1', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}, 
{'acl_name': 'DR_access_in', 'acl_type': 'extended', 'remark': '', 'acl_filter': 'permit', 'protocol': 'ip', 'src_intfc': '', 'src_object_grp': '', 'src_object': '', 'src_host': '', 'src_network': '', 'src_mask': '', 'src_any': 'any4', 'src_port_option': '', 'src_port': '', 'dst_intfc': '', 'dst_object_grp': '', 'dst_object': 'object COMVAULT2', 'dst_host': '', 'dst_network': '', 'dst_mask': '', 'dst_any': '', 'dst_port_option': '', 'dst_port': '', 'options_log': '', 'options_inactive': '', 'options_time_range': '', 'log_severity': '', 'log_option_inactive': '', 'log_option_interval': '', 'log_option_time_range': '', 'log_interval': '', 'log_int_opt_inactive': '', 'log_int_opt_time_range': '', 'time_range_name': '', 'time_range_opt': ''}]]

0 个答案:

没有答案