我有一本词典,里面有名单
find_dup = {"one":[["1654","raj","425","16-02-2017"],["1654","mo","426","20-02-2017"],["1654","ss","425","20-02-2017"],["1654","vs","427","20-02-2017"],["1654","ss","425","14-02-2017"]]}
我想在第一个和第三个元素的列表中找到重复的
例如
^{pr2}$从上面的元素可以看出1654425是重复的(因为我想根据第一个和第三个元素查找重复项)
所以从上面的列表来看,这个列表是重复的
["1654","raj","425","16-02-2017"] -> 1654,425
["1654","ss","425","20-02-2017"] -> 1654,425
["1654","ss","425","14-02-2017"] -> 1654,425
现在我们要从这个列表中删除2个日期较早的元素(列表的最后一个元素是date)
此2列表的日期较旧,因此应将其删除
["1654","raj","425","16-02-2017"] -> 1654,425
["1654","ss","425","14-02-2017"] -> 1654,425
结果应该是这样
find_dup = {"one":[["1654","mo","426","20-02-2017"],["1654","ss","425","20-02-2017"],["1654","vs","427","20-02-2017"]]}
我有一个python脚本,它迭代列表,但是我找不到逻辑,如果我发现重复并替换最新日期,如何弹出元素
这是我失败的脚本
find_dup = {"one":[["1654","raj","425","16-02-2017"],["1654","mo","426","20-02-2017"],["1654","ss","425","20-02-2017"],["1654","vs","427","20-02-2017"],["1654","ss","425","14-02-2017"]]}
for d in find_dup:
len_d = len(find_dup[d])
store_array_dup = []
store_array_ele = {}
for i in find_dup[d]:
val = i[0]+"-"+i[1]"-"+i[2]"-"+i[3]
val_1 = i[0]+"-"+i[2]
if val_1 in store_array_dup:
store_array_ele.append(val_1)
else:
arrs = []
arrs.append(val)
store_array_ele[d] = arrs
我怎么能得出这样的结果
find_dup = {"one":[["1654","mo","426","20-02-2017"],["1654","ss","425","20-02-2017"],["1654","vs","427","20-02-2017"]]}
这是您的数据集:
您可以使用基于第一个和第三个元素的新键在数据集中创建新dict,并按日期排序:
^{pr2}$输出:
首先解决列表列表的问题:
然后将其应用于
^{pr2}$find_dup
的每个条目。在我建议按元组(第一个元素、第三个元素和日期)对列表进行排序,并首先保留最小的日期,然后按第一个和第三个元素对排序后的列表进行分组,最后从每个子组中选择第一个元素:
相关问题 更多 >
编程相关推荐