Python 如何在元组中单独添加元素?
如何在元组中单独添加元素 例如,我需要Python 如何在元组中单独添加元素?,python,list,tuples,addition,Python,List,Tuples,Addition,如何在元组中单独添加元素 例如,我需要(2,4)从(0,1)+(2,3),我已经这样做了,但是否有一种更具pythonic风格/更不冗长的方式来做同样的事情 >>> x = (0,1) >>> y = (2,3) >>> x + y (0, 1, 2, 3) >>> tuple(i+j for i,j in zip(x,y)) (2, 4) 您可以在此处使用zip和sum: 示例: >>> x = (0,
(2,4)
从(0,1)
+(2,3)
,我已经这样做了,但是否有一种更具pythonic风格/更不冗长的方式来做同样的事情
>>> x = (0,1)
>>> y = (2,3)
>>> x + y
(0, 1, 2, 3)
>>> tuple(i+j for i,j in zip(x,y))
(2, 4)
您可以在此处使用
zip
和sum
:
示例:
>>> x = (0, 1)
>>> y = (2, 3)
>>> tuple(map(sum, zip(x, y)))
(2, 4)
允许我们成对地组合两个iterable或list的元素zip
让我们对这些对求和sum
允许我们对每对应用map
函数sum
- 最后,我们将结果列表(或Python3.x中的iterable)转换回
元组,因为这似乎是您想要的
(0 + 2, 1 + 3)
您可以在此处使用
zip
和sum
:
示例:
>>> x = (0, 1)
>>> y = (2, 3)
>>> tuple(map(sum, zip(x, y)))
(2, 4)
允许我们成对地组合两个iterable或list的元素zip
让我们对这些对求和sum
允许我们对每对应用map
函数sum
- 最后,我们将结果列表(或Python3.x中的iterable)转换回
元组,因为这似乎是您想要的
(0 + 2, 1 + 3)
您自己的解决方案是在纯python中实现这一点的正确方法 如果要避免循环,可以使用
numpy
对操作进行矢量化:
import numpy as np
tuple( np.asarray(tup1) + np.asarray(tup2) )
如果确实需要将数据转换为元组,则只应将其转换回元组。否则,leave将作为numpy数组,这意味着您以后可以对其应用更多矢量化操作
另外,到
np.asarray
的第二次转换也是可选的。第一个就足够了(其他转换由numpy自动完成)。在纯python中,您自己的解决方案是正确的方法
如果要避免循环,可以使用numpy
对操作进行矢量化:
import numpy as np
tuple( np.asarray(tup1) + np.asarray(tup2) )
如果确实需要将数据转换为元组,则只应将其转换回元组。否则,leave将作为numpy数组,这意味着您以后可以对其应用更多矢量化操作
另外,到
np.asarray
的第二次转换也是可选的。第一个就足够了(其他转换由numpy自动完成)。这可能是使用numpy从元组添加单个元素的更快方法:
import numpy as np
x = (0,1)
y = (2,3)
z = np.array(x) + np.array(y)
z = tuple(z)
z
(2, 4)
这可能是使用numpy从元组添加单个元素的更快方法:
import numpy as np
x = (0,1)
y = (2,3)
z = np.array(x) + np.array(y)
z = tuple(z)
z
(2, 4)
+1但这会创建一个列表;要重新计算OP想要的确切结果,它必须是
元组(map(sum,zip(x,y))
+1,但这会创建一个列表;要重新计算OP想要的确切结果,它必须是tuple(map(sum,zip(x,y)))