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

Python-将两个元组列表合并为一个元组列表

Python-将两个元组列表合并为一个元组列表,python,list,Python,List,什么是pythonic方法来实现以下目标 发件人: 得到 c = [('orange', 10), ('of', 17), ('apple', 10)] 基本上有单词计数器对。使用collections.Counter()可以以一种自然、通俗的方式处理这些内容: from collections import Counter c = (Counter(dict(a)) + Counter(dict(b))).items() 也看到 演示: 您只需停止调用.items()并在此处继续使用计数

什么是pythonic方法来实现以下目标

发件人:

得到

c = [('orange', 10), ('of', 17), ('apple', 10)]

基本上有单词计数器对。使用
collections.Counter()
可以以一种自然、通俗的方式处理这些内容:

from collections import Counter

c = (Counter(dict(a)) + Counter(dict(b))).items()
也看到

演示:

您只需停止调用
.items()
并在此处继续使用
计数器()


您可能希望从一开始就避免构建(word,count)元组来处理
Counter()
对象。

您基本上拥有单词计数器对。使用
collections.Counter()
可以以一种自然、通俗的方式处理这些内容:

from collections import Counter

c = (Counter(dict(a)) + Counter(dict(b))).items()
也看到

演示:

您只需停止调用
.items()
并在此处继续使用
计数器()


您可能希望避免构建(word,count)元组来开始和使用
Counter()
从一开始就是对象。

使用
collections.Counter
你有没有一种非音速的方法来开始呢?使用
collections.Counter
你有没有一种非音速的方法来开始呢?有没有避免中间字典的好方法?我也想不出一个…@dhke:没有“好”的方法,它是将(单词,计数)元组列表转换为
计数器的最简洁的方法,我想的
计数器.update()
但实际上其行为与
dict.update()不同
当传递一个元组序列时。有没有避免中间字典的好方法?我也想不出一个…@dhke:没有“好”的方法,它是将(单词,计数)元组列表转换为
计数器的最简洁的方法,我一直在想
Counter.update()
但是当传递元组序列时,它的行为实际上不同于
dict.update()
>>> from collections import Counter
>>> a = [('apple', 10), ('of', 10)]
>>> b = [('orange', 10), ('of', 7)]
>>> Counter(dict(a)) + Counter(dict(b))
Counter({'of': 17, 'orange': 10, 'apple': 10})
>>> (Counter(dict(a)) + Counter(dict(b))).items()
[('orange', 10), ('of', 17), ('apple', 10)]