Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从列表中删除重复项并从中取出最大的重复项_Python - Fatal编程技术网

Python 如何从列表中删除重复项并从中取出最大的重复项

Python 如何从列表中删除重复项并从中取出最大的重复项,python,Python,我有以下python中的dict列表 [{'JP': ['Server2', 'Server1', 'Server3']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server1']}, {'JP': ['Server1']}, {'JP': ['Server1']}, {'JP': ['Server2', 'Server1'

我有以下python中的dict列表

[{'JP': ['Server2', 'Server1', 'Server3']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server1']}, {'JP': ['Server1']}, {'JP': ['Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}]
我想从这些中删除重复项,然后取出最大值列表。在上述情况下,我的输出将是

[{'JP': ['Server2', 'Server1', 'Server3']}]
我正在尝试删除重复项

result = [dict(t) for t in set([tuple(d.items()) for d in result])]

它给了我错误
不可损坏的类型:“list”
。有没有指向正确方向的指针?

我在这里对你的字典进行假设,但如果

x = [{'JP': ['Server2', 'Server1', 'Server3']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server1']}, {'JP': ['Server1']}, {'JP': ['Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}]

x.sort(key = lambda x:len(x['JP']))
然后

x[-1]
将是您想要的

更新: 借用下面Marco Bonelli的答案,您不必对数组进行实际排序。你可以简单地找到像这样的“最大的”

 max(x, key = lambda x:len(x['JP']))

我在假设你的字典,但如果

x = [{'JP': ['Server2', 'Server1', 'Server3']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server1']}, {'JP': ['Server1']}, {'JP': ['Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}]

x.sort(key = lambda x:len(x['JP']))
然后

x[-1]
将是您想要的

更新: 借用下面Marco Bonelli的答案,您不必对数组进行实际排序。你可以简单地找到像这样的“最大的”

 max(x, key = lambda x:len(x['JP']))

我在假设你的字典,但如果

x = [{'JP': ['Server2', 'Server1', 'Server3']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server1']}, {'JP': ['Server1']}, {'JP': ['Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}]

x.sort(key = lambda x:len(x['JP']))
然后

x[-1]
将是您想要的

更新: 借用下面Marco Bonelli的答案,您不必对数组进行实际排序。你可以简单地找到像这样的“最大的”

 max(x, key = lambda x:len(x['JP']))

我在假设你的字典,但如果

x = [{'JP': ['Server2', 'Server1', 'Server3']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server1']}, {'JP': ['Server1']}, {'JP': ['Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}, {'JP': ['Server2', 'Server1']}]

x.sort(key = lambda x:len(x['JP']))
然后

x[-1]
将是您想要的

更新: 借用下面Marco Bonelli的答案,您不必对数组进行实际排序。你可以简单地找到像这样的“最大的”

 max(x, key = lambda x:len(x['JP']))

这个怎么样?易于查看其工作原理易于修改:)


这个怎么样?易于查看其工作原理易于修改:)


这个怎么样?易于查看其工作原理易于修改:)


这个怎么样?易于查看其工作原理易于修改:)


那么,在您的意义上,“最大”就是包含最多项的列表?如果上面的列表也包含
{'JP':['Server4']}
,会发生什么?最终结果中是否应该出现
'Server4'
?或者你只是在寻找包含最长“JP”列表的dict?那么,在你的意义上,“最大”就是包含最多项的列表?如果上面的列表也包含
{'JP':['Server4']}
,该怎么办?最终结果中是否应该出现
'Server4'
?或者你只是在寻找包含最长“JP”列表的dict?那么,在你的意义上,“最大”就是包含最多项的列表?如果上面的列表也包含
{'JP':['Server4']}
,该怎么办?最终结果中是否应该出现
'Server4'
?或者你只是在寻找包含最长“JP”列表的dict?那么,在你的意义上,“最大”就是包含最多项的列表?如果上面的列表也包含
{'JP':['Server4']}
,该怎么办?最终结果中是否应该出现
'Server4'
?或者您只是在寻找包含最长“JP”列表的dict吗?我可以在那里使用x.keys()来避免硬编码“JP”
x.keys()
返回所有键。除非你更清楚地说明你的问题,否则恐怕所有的解决方案都是不够的。不-这提供了一个
dict\u keys
对象,不能用作索引。但是,通过将它包装在x[0]中k的
中,keys():…
您应该能够做到这一点。我相信还有更好的方法,但我的大脑现在很痛。如果
JP
不是常数(而是在创建
dict
s时在其他地方定义的,那么从定义该键的任何地方获取它。我可以在那里使用x.keys()来避免硬编码“JP”
x.keys()
返回所有键。除非您更清楚地说明您的问题,否则恐怕所有解决方案都不够。否-这提供了一个
dict_keys
对象,它不能用作索引。但是,通过将其包装在
中,用于x[0]中的k。keys():…
你应该能够做到。我肯定还有更好的方法,但我的大脑现在很痛。如果
JP
不是一个常数(而是在创建
dict
s时在别处定义的,那么从你定义该键的任何地方抓取它。我可以在那里使用x.keys()来避免硬编码“JP”
x.keys()
返回所有键。除非您更清楚地说明您的问题,否则恐怕所有解决方案都不够。否-这提供了一个
dict_keys
对象,它不能用作索引。但是,通过将其包装在
中,用于x[0]中的k。keys():…
你应该能够做到。我肯定还有更好的方法,但我的大脑现在很痛。如果
JP
不是一个常数(而是在创建
dict
s时在别处定义的,那么从你定义该键的任何地方抓取它。我可以在那里使用x.keys()来避免硬编码“JP”
x.keys()
返回所有键。除非您更清楚地说明您的问题,否则恐怕所有解决方案都不够。否-这提供了一个
dict_keys
对象,它不能用作索引。但是,通过将其包装在
中,用于x[0]中的k。keys():…
你应该能够做到。我肯定还有更好的方法,但我的大脑现在很痛。如果
JP
不是一个常数(而是在创建
dict
时在其他地方定义的),那么从定义该键的任何地方抓取它。