Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >zip函数元组帮助

zip函数元组帮助
EN

Stack Overflow用户
提问于 2011-04-17 12:40:43
回答 4查看 39.6K关注 0票数 7

我希望有人能帮助我解决一个我一直困扰着的问题。我有大量的元组(>500),如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(2,1,3,6)  
(1,2,5,5)  
(3,0,1,6)  
(10,1,1,4)  
(0,3,3,0)  

我的代码片段如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sum1 = (A,B,C,D) # creates a tuple of sums of (A,B,C,D)  
mysum = map(sum, zip(A, B, C, D))
print(mysum)

我意识到上面的代码不正确。我试图找到一种方法,用zip函数把所有的值A加在一起,把B的所有值加在一起,把C的所有值加在一起,把D的所有值加在一起。例如,我想打印如下所示的内容:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Asum = 16  
Bsum = 7  
Csum = 13  
Dsum = 21  

有谁能帮帮忙吗?非常感谢您的宝贵时间。

EN

回答 4

Stack Overflow用户

发布于 2011-04-17 12:48:32

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
map(sum, zip(a, b, c, d, e))

第一个调用是zip,它反转列表--生成一个包含所有第一个元素、所有第二个元素等的列表。

第二个调用,map,在它的第二个参数sum上调用它的第一个参数,返回sum的结果列表--恰好是总和。

票数 4
EN

Stack Overflow用户

发布于 2011-04-17 12:48:06

如果你的sets都是一样的大小,并且你使用的是C Python,你应该考虑使用numpy。你可以在numpy中这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
In [5]: sets = ((2,1,3,6),
   ...:         (1,2,5,5),
   ...:         (3,0,1,6),
   ...:         (10,1,1,4),
   ...:         (0,3,3,0)  )*100

In [6]: import numpy as np

In [7]: A = np.array(sets)

In [8]: np.sum(A, axis=0)
Out[8]: array([1600,  700, 1300, 2100])

Numpy将值转换为数组,并使用优化的LAPACK函数高效地处理它们。

为了比较性能,我在两组假设下进行了分析。在第一个示例中,我假设您的数据是这样存储的,这样导入到Numpy数组中是有效的,所以我没有包括将集合转换为数组所需的时间。我比较了np.sum和sum(x)在zip(*sets)中的性能。以下是每种情况的时间结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Excluding numpy Array Conversion: 0.0735958760122
Including numpy Array Conversion: 17.1435046214
Plain old zip: 0.660146750495

结论是,如果您的输入数据可以很容易地用numpy导入,那么numpy会更快。

票数 2
EN

Stack Overflow用户

发布于 2011-04-17 12:51:01

如果您将所有元组都放在一个列表中,那么可以使用reduce()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> list(reduce(lambda x,y: (i+j for i,j in zip(x,y)), tuples, [0]*4))
[16, 7, 13, 21]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5693559

复制
相关文章
python zip函数
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例:
py3study
2020/01/17
7450
Python zip() 函数
zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。如果各个可迭代对象的元素个数不一致,则返回的对象长度与最短的可迭代对象相同。利用 * 号操作符,与zip相反,进行解压
狼啸风云
2019/07/02
8620
python内置函数zip()
用途:在多个迭代器上并行迭代,从每个迭代器返回一个数据项组成元组。特色用法:实现行列互换
用户2794661
2022/05/12
4940
11.python zip函数
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,返回的结果可以直接强转为list列表,这样做的好处是节约了不少的内存!
猿说编程[Python和C]
2020/03/12
4130
Python自带函数map(),zip(
map(function, sequence[, sequence, ...]) -> list
py3study
2020/01/15
6970
Python 内置函数之——zip()
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 *号操作符,可以将元组解压为列表。我们看一下演示代码。
小白学视觉
2022/09/28
3900
Python 内置函数之——zip()
zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。我们可以使用 list() 转换来输出列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 *号操作符,可以将元组解压为列表。我们看一下演示代码。
abs_zero
2020/08/28
6120
Python:zip 函数的用法
zip() 接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个 tuple,然后返回由这些 tuple 组成的 list。
丹枫无迹
2019/09/11
1.2K0
Python基础:理解enumerate函数和zip函数
本文将通过几个示例介绍Python中的enumerate()函数和zip()函数。
fanjy
2022/06/04
2.3K0
Python基础:理解enumerate函数和zip函数
简单瞅瞅Python zip()函数
返回一个zip对象,其.__ next __()方法返回一个元组,其中第 i 个元素分别来自各可迭代对象的第 i 个参数。.__ next __()方法一直持续到参数序列中最短的iterable(可迭代对象)耗尽,然后它抛出StopIteration。
py3study
2020/01/02
3630
Python 列表(元组)的count函数
列表(元组)的count函数 功能 返回当前列表中某个成员的个数 用法 inttype = list.count(item) 参数 item : 你想查询个数的元素 注意事项 如果查询的成员(元素)不存在,则返回 0 列表只会检查完整元素是否存在需要计算的内容 列表和元组的count是一致的 代码 # coding:utf-8 animals = ['小猫', '小狗', '龙猫', '小猫', '鹦鹉', '小狗', '小兔子', '小猫'] cat = animals.count('小猫')
Zkeq
2022/05/18
8770
python3的zip函数
zip函数接受任意多个可迭代对象作为参数,将对象中对应的元素打包成一个tuple,然后返回一个可迭代的zip对象.
py3study
2020/01/03
4160
Groovy 元组构造函数创建
Groovy 1.8添加了@TupleConstructor注释。 通过这个注释,我们可以在编译时自动创建一个元组构造函数。 因此构造函数可以在编译的类中找到。 对于类中的每个属性,将使用默认值创建构造函数中的参数。 类中定义的属性的顺序还定义了构造函数中参数的顺序。 因为参数具有默认值,所以我们可以使用Groovy语法,并在使用构造函数时将参数留在参数列表的末尾。
白石
2019/09/18
1.3K0
Python文档研读系列:zip函数
zip([iterable, ...]) This function returns a list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables. The returned list is truncated in length to the length of the shortest argument sequence. When the
Python中文社区
2018/01/31
5350
Python文档研读系列:zip函数
Python好酷|zip函数的妙用
专注测试圈,自动化测试、测试平台开发、测试新技术、大厂测试岗面经分享, 可以帮忙内推BATJ等大厂!
互联网金融打杂
2022/08/01
4440
在函数中接受元组与字典
# 在函数中接受元组与字典 有一种特殊方法,即分别使用 * 或 ** 作为元组或字典的前缀,来使它们作为一个参数为 函数所接收。当函数需要一个可变数量的实参时,这将非常有用。 # 代码 # 当args变量前面添加了一个*时,函数的所有其他的参数都将传递到args中,并作为一个元组储存 # 如果采用的是 ** 前缀,则额外的参数将被视为字典的键值—值配对。 def powersum(power, *args): '''Return the sum of each argument raised to
benym
2022/07/14
1.2K0
zip函数-求最长公共前缀
用python解决问题的方法有很多:函数法、暴力法以及一些常见的算法等等,而且python 的很多基础题用函数来解决是非常快捷的。熟练掌握函数的方法和技巧能够更好地解决问题,思路更加清晰。
小小科
2020/05/28
6080
点击加载更多

相似问题

php函数zip_open帮助

11

元组的Zip列表

24

需要使用"zip()“函数的编码帮助

314

Python元组的zip列表

20

为什么zip会返回元组?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文