Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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_List_Tuples - Fatal编程技术网

Python 返回包含列表列表中最常见元素的元组

Python 返回包含列表列表中最常见元素的元组,python,list,tuples,Python,List,Tuples,我有一份清单: 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"},

我有一份清单:

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()]

我需要创建一个具有最常见元素的
元组((本例中为(0,2))<索引为0的代码>列表
和索引为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']
并生成最频繁项目的列表:

>>> 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)