Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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,我有: 我需要添加具有相同第一个元素的第二个元素 输出:[(5,3)、(7,5)、(11,1)]这是集合的一个很好的用例。计数器 ([(5,2),(7,2)],[(5,1),(7,3),(11,1)]) 这里的一个缺点是您将丢失输入的顺序。它们似乎是按键排序的,因此您可以只对项目进行排序: from collections import Counter tup = ([(5,2),(7,2)], [(5,1),(7,3),(11,1)]) counts = sum((Counter(dict(

我有:

我需要添加具有相同第一个元素的第二个元素


输出:
[(5,3)、(7,5)、(11,1)]
这是
集合的一个很好的用例。计数器

([(5,2),(7,2)],[(5,1),(7,3),(11,1)])
这里的一个缺点是您将丢失输入的顺序。它们似乎是按键排序的,因此您可以只对项目进行排序:

from collections import Counter
tup = ([(5,2),(7,2)], [(5,1),(7,3),(11,1)])
counts = sum((Counter(dict(sublist)) for sublist in tup), Counter())
result = list(counts.items()) 
print(result)

计数器
是一种字典,其目的是保存箱子的“计数”。计数的设计非常巧妙,因此您可以简单地将它们相加(这会将计数“按仓位”相加——如果两个计数器中都没有仓位,则假定缺少的仓位值为0)。因此,这就解释了为什么我们可以在一堆计数器上使用
sum
,以获得一个包含所需值的字典。不幸的是,对于此解决方案,
计数器
无法通过使用生成2项序列(如正常映射)的iterable来实例化

result = sorted(counts.items())
将使用键
(1,2)
(3,4)
创建一个
计数器
——这两个值都是1。如果您使用映射创建它,它确实会按预期工作,但是:

Counter([(1, 2), (3, 4)])

使用键
1
3
(以及值
2
4
)创建
计数器。

这是
集合的一个很好的用例。计数器

([(5,2),(7,2)],[(5,1),(7,3),(11,1)])
这里的一个缺点是您将丢失输入的顺序。它们似乎是按键排序的,因此您可以只对项目进行排序:

from collections import Counter
tup = ([(5,2),(7,2)], [(5,1),(7,3),(11,1)])
counts = sum((Counter(dict(sublist)) for sublist in tup), Counter())
result = list(counts.items()) 
print(result)

计数器
是一种字典,其目的是保存箱子的“计数”。计数的设计非常巧妙,因此您可以简单地将它们相加(这会将计数“按仓位”相加——如果两个计数器中都没有仓位,则假定缺少的仓位值为0)。因此,这就解释了为什么我们可以在一堆计数器上使用
sum
,以获得一个包含所需值的字典。不幸的是,对于此解决方案,
计数器
无法通过使用生成2项序列(如正常映射)的iterable来实例化

result = sorted(counts.items())
将使用键
(1,2)
(3,4)
创建一个
计数器
——这两个值都是1。如果您使用映射创建它,它确实会按预期工作,但是:

Counter([(1, 2), (3, 4)])
使用键
1
3
(以及值
2
4
)创建一个
计数器

尝试此代码:(暴力,可能是…)


这里采用的方法是循环遍历元组列表并将元组数据存储为字典,其中元组
t[0]
中的第一个元素是
,第二个元素
t[1]

迭代后,每次在元组的第一个元素中找到相同的键时,将该值与元组的第二个元素相加。最后,我们将拥有一个字典
dt
,其中包含所需的所有
对。将此字典转换为元组列表
dt.items()
,我们就有了输出。

试试下面的代码:(蛮力,可能是…)


这里采用的方法是循环遍历元组列表并将元组数据存储为字典,其中元组
t[0]
中的第一个元素是
,第二个元素
t[1]


迭代后,每次在元组的第一个元素中找到相同的键时,将该值与元组的第二个元素相加。最后,我们将拥有一个字典
dt
,其中包含所需的所有
对。将此词典转换为元组列表
dt.items()
,我们就有了输出。

请给我们一个最小的、完整的、可验证的示例,说明您的尝试。请给我们一个最小的、完整的、,您尝试的可验证示例。您能进一步解释吗?@zaolee_-dragon:在答案中更新了解释。您能进一步解释吗?@zaolee_-dragon:在答案中更新了解释。