You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中基于FILTER哈希值过滤字典列表并保留所有列

基于FILTER哈希值对字典列表去重的解决方案

方法一:保留每个唯一FILTER的首个出现项

通过集合追踪已处理的FILTER值,遍历列表时只保留未出现过的项:

original_list = [
    {'DST': '192.168.171.255', 'FILTER': 4044338851943978111, 'PORT': 137, 'PROTO': 17, 'SRC': '192.168.171.161'},
    {'DST': '192.168.171.255', 'FILTER': 4044338851943978111, 'PORT': 137, 'PROTO': 17, 'SRC': '192.168.171.161'},
    {'DST': '192.168.171.255', 'FILTER': 4044338851943978111, 'PORT': 137, 'PROTO': 17, 'SRC': '192.168.171.161'},
    {'DST': '192.168.171.255', 'FILTER': 4044338851943978111, 'PORT': 137, 'PROTO': 17, 'SRC': '192.168.171.161'},
    {'DST': '192.168.171.69', 'FILTER': 1048673258922045509, 'PORT': 63971, 'PROTO': 6, 'SRC': '35.157.63.228'}
]

seen_filters = set()
unique_list = []

for item in original_list:
    filter_val = item['FILTER']
    if filter_val not in seen_filters:
        seen_filters.add(filter_val)
        unique_list.append(item)

print(unique_list)

运行后会输出你期望的结果,每个唯一FILTER对应的第一个字典会被保留。

方法二:简洁高效的去重(保留最后一个出现项)

利用Python字典键的唯一性,快速实现去重:

original_list = [
    {'DST': '192.168.171.255', 'FILTER': 4044338851943978111, 'PORT': 137, 'PROTO': 17, 'SRC': '192.168.171.161'},
    {'DST': '192.168.171.255', 'FILTER': 4044338851943978111, 'PORT': 137, 'PROTO': 17, 'SRC': '192.168.171.161'},
    {'DST': '192.168.171.255', 'FILTER': 4044338851943978111, 'PORT': 137, 'PROTO': 17, 'SRC': '192.168.171.161'},
    {'DST': '192.168.171.255', 'FILTER': 4044338851943978111, 'PORT': 137, 'PROTO': 17, 'SRC': '192.168.171.161'},
    {'DST': '192.168.171.69', 'FILTER': 1048673258922045509, 'PORT': 63971, 'PROTO': 6, 'SRC': '35.157.63.228'}
]

# 用FILTER作为键,重复键会被最后一个值覆盖
unique_dict = {item['FILTER']: item for item in original_list}
# 提取字典值转为列表
unique_list = list(unique_dict.values())

print(unique_list)

这种方法代码更短,效率更高,但会保留每个FILTER对应的最后一个出现的字典。如果你的场景中重复项的内容完全一致,两种方法的结果是一样的。

内容的提问来源于stack exchange,提问作者Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:05:14