这在python2.x中非常有效,但在python3.x上却不行
这在python2.x中非常有效,但在python3.x上却不行这在python2.x中非常有效,但在python3.x上却不行,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,这在python2.x中非常有效,但在python3.x上却不行 import sys print (sys.version) def add_pair((a,b),(c,d)): return a+c, b+d print (add_pair((10,20),(30,40))) Python3中不再支持元组参数: 在函数中执行任何操作之前,必须先解压缩元组。我很惊讶它在2.x中可以工作,但显然显式元组在函数参数中是可以的。但这从来都不是一种伟大的风格。函数参数应仅用逗号分隔。这
import sys
print (sys.version)
def add_pair((a,b),(c,d)):
return a+c, b+d
print (add_pair((10,20),(30,40)))
Python3中不再支持元组参数:
在函数中执行任何操作之前,必须先解压缩元组。我很惊讶它在2.x中可以工作,但显然显式元组在函数参数中是可以的。但这从来都不是一种伟大的风格。函数参数应仅用逗号分隔。这在以下两方面都有效:
import sys
print(sys.version)
def add_pair(x,y):
''' Unpack the tuples here e.g a, b = x, c, d = y or as below (as per the req)'''
return(x[0]+y[0], x[1]+y[1])
print(add_pair((10,20),(30,40)))
他们移除了蟒蛇3中的蛇。因此,替代方法如下所示或上述答案中所述:
def add_pair(pair1, pair2):
a, b = pair1
c, d = pair2
return a+c, b+d
print(add_pair((10, 20), (30, 40)))
python 3中的元组参数解包。它抱怨syntaxBTW无效,这不是一个问题。类似地,这个lambda x,y,z:x,y+z的等效转换是什么
def add_pair(*kwargs):
return tuple(sum(i) for i in zip(*kwargs))
print(add_pair((10,20),(30,40)))
# (40, 60)