Python 组合两个不同元组值的最佳方法
我想将两个元组(任意大小)的值相加,并创建一个输出元组。 例如:Python 组合两个不同元组值的最佳方法,python,python-3.x,tuples,Python,Python 3.x,Tuples,我想将两个元组(任意大小)的值相加,并创建一个输出元组。 例如: a = (1,4) b = (2,3) 输出:(3,7) 有没有比以下更好的方法: output = (a[0] + b[0], a[1]+b[1]) 如果您想坚持使用2元组,那么您所拥有的是很好的(而且可能是最好的)。您可以考虑使用不同的数据结构,其中 +>代码>运算符添加元素。例如: a = (1,4) b = (2,3) complex数字像两个向量一样相加(使用.real和.imag组件) numpy数组 编写自己
a = (1,4)
b = (2,3)
输出:(3,7)
有没有比以下更好的方法:
output = (a[0] + b[0], a[1]+b[1])
如果您想坚持使用2元组,那么您所拥有的是很好的(而且可能是最好的)。您可以考虑使用不同的数据结构,其中<代码> +>代码>运算符添加元素。例如:
a = (1,4)
b = (2,3)
数字像两个向量一样相加(使用complex
和.real
组件).imag
数组numpy
- 编写自己的
类,覆盖点
魔术方法\uuuuu添加
a = (1,4)
b = (2,3)
数字像两个向量一样相加(使用complex
和.real
组件).imag
数组numpy
- 编写自己的
类,覆盖点
魔术方法\uuuuu添加
output = tuple(map(sum, zip(a,b)))
或者,您必须再次向元组提供的列表comp
:
output = tuple([i+j for i,j in zip(a,b)])
如果大小可能不同,您总是可以使用
itertools
中的zip\u longest
替换zip
,使用0
的填充值。如果您不想以不需要拼出所有元素的方式执行此操作,请使用以下功能:
output = tuple(map(sum, zip(a,b)))
或者,您必须再次向元组提供的列表comp
:
output = tuple([i+j for i,j in zip(a,b)])
如果大小可能不同,您始终可以使用
itertools
中的zip\u longest
替换zip
,使用0
的填充值。使用生成器表达式如何
output = tuple(a[i] + b[i] for i in range(len(a)))
如果您不知道元组的长度相同,可以尝试使用更奇特的方法,如zip
(将在较短元组的长度处停止),或itertools.izip
(允许您控制如何处理不同长度的元组)
使用生成器表达式怎么样
output = tuple(a[i] + b[i] for i in range(len(a)))
如果您不知道元组的长度相同,可以尝试使用更奇特的方法,如zip
(将在较短元组的长度处停止),或itertools.izip
(允许您控制如何处理不同长度的元组)
请澄清您询问的是“2元组”,因为您有两个元素的元组,或者“2元组”表示您正在添加一对元组。请澄清您询问的是“2元组”,因为您有两个元素的元组,或者“2元组”表示您正在添加一对元组。在第二个示例中,您实际上不需要中间列表,因为您可以使用生成器exp而不是列表理解。因此您可以删除
[
]
。i、 e.tuple(i+j表示zip(a,b)中的i,j))
第一个示例似乎是最好的通用解决方案,因为它可以处理任意数量的输入元组。在第二个示例中,您实际上不需要中间列表,因为您可以使用生成器exp而不是列表理解。因此您可以删除[
]
。i、 e.tuple(i+j表示zip(a,b)中的i,j))
第一个示例似乎是最好的通用解决方案,因为它适用于任意数量的输入元组。给出答案时,最好给出的是一个。给出答案时,最好给出的是一个。