[英]Find the most common number in two lists from a third list, get list with most common elements
[英]Return a tuple with the most common elements from list of lists
我有一个清单:
list = [{"maamaks kaotada", "pensione tõsta", "kaitsekulutusi tõsta"},
{"lasteaiaõpetajate palku tõsta", "kindlustada tasuta hambaravi kuni 30-aastastele"},
{"sisserännet piirata", "pensione tõsta", "kaitsekulutusi tõsta"},
set()]
我需要创建一个具有最常见元素的tuple
(在这种情况下为(0,2))。 list
索引为0和list
与索引2具有最常见的元素,因此元组必须是(0,2)。 我怎样才能做到这一点?
您已经创建了列表:
>>> my_list = [{"maamaks kaotada", "pensione tõsta", "kaitsekulutusi tõsta"},
... {"lasteaiaõpetajate palku tõsta", "kindlustada tasuta hambaravi kuni 30-aastastele"},
... {"sisserännet piirata", "pensione tõsta", "kaitsekulutusi tõsta"},
... set()]
之后,第一步将是计算每个字符串的出现次数:
>>> counts = {}
>>> for dict in myList:
... for key in dict:
... counts[key] = counts.get(key,0) + 1
...
>>> counts
{'pensione tõsta': 2, 'maamaks kaotada': 1, 'kindlustada tasuta hambaravi kuni 30-aastastele': 1, 'kaitsekulutusi tõsta': 2, 'sisserännet piirata': 1, 'lasteaiaõpetajate palku tõsta': 1}
现在,您可以找到最常出现的商品的数量:
>>> frequent_count = max([counts[i] for i in counts])
>>> frequent_count
2
并生成最常使用的商品的列表:
>>> frequent = []
>>> for key in counts:
... if counts[key] == max([counts[i] for i in counts]):
... frequent += [key]
...
>>> frequent
['pensione tõsta', 'kaitsekulutusi tõsta']
最后获得包含您最常使用的字符串的集合的列表:
>>> final_list = []
>>> for i in ,y_list:
... if any(item in i for item in frequent):
... final_list += [i]
...
>>> tuple(final_list)
({'pensione tõsta', 'maamaks kaotada', 'kaitsekulutusi tõsta'}, {'pensione tõsta', 'kaitsekulutusi tõsta', 'sisserännet piirata'})
或者如果您想要索引:
>>> final_list = []
>>> for i in range(len(my_list)):
... if any(item in my_list[i] for item in frequent):
... final_list += [i]
...
>>> tuple(final_list)
(0, 2)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.