如何在Python 3中减去嵌套列表中的元素?
我有一个嵌套列表(子列表只有2个元素),如下所示:如何在Python 3中减去嵌套列表中的元素?,python,python-3.x,list,Python,Python 3.x,List,我有一个嵌套列表(子列表只有2个元素),如下所示: list_1 = [[1,2],[3,2]] list_1 = [[1,2],[3,2]] store = [] def subtraction(z,l): total = z - l return total for y in list_1: store.append(subtraction(y)) 我想减去每个嵌套列表中的元素,如下所示为输出: [-1,1] 要对嵌套列表中的数字求和,我只需使用: list_1
list_1 = [[1,2],[3,2]]
list_1 = [[1,2],[3,2]]
store = []
def subtraction(z,l):
total = z - l
return total
for y in list_1:
store.append(subtraction(y))
我想减去每个嵌套列表中的元素,如下所示为输出:
[-1,1]
要对嵌套列表中的数字求和,我只需使用:
list_1 = [[1,2],[3,2]]
store = []
for x in list_1:
store.append(sum(x))
但是在进行减法时,由于我无法在互联网上使用任何类似“求和”的函数进行减法,我尝试创建一个这样的函数:
list_1 = [[1,2],[3,2]]
list_1 = [[1,2],[3,2]]
store = []
def subtraction(z,l):
total = z - l
return total
for y in list_1:
store.append(subtraction(y))
但它返回:
TypeError: subtraction() missing 1 required positional argument: 'l'
如何克服此错误并使代码正常工作?我将采用的方法是:
list_1 = [[1,2],[3,2]]
store = []
for a, b in list_1:
store.append(a - b)
您可以使用扩展Iterable解包运算符
list_1 = [[1,2],[3,2]]
store = []
def subtraction(z,l):
total = z - l
return total
for y in list_1:
store.append(subtraction(*y))
另一种方法是使用列表理解
list = [a-b for a, b in list]
您可以通过使用列表理解来实现这一点
store = [ l1-l2 for l1, l2 in list_1]
您可以使用和的组合: 演示:
>>> list_1 = [[1,2],[3,2]]
>>> list(map(lambda x: x[0] - x[1], list_1))
[-1, 1]
store.append(sum(list_1))
:你是说store.append(sum(x
)`改为?@Evert是的,对不起,我正在编辑它。你的子列表总是两个元素吗?对于少于或多于两个元素,您希望有什么行为?store.append(减法(*y))
@khelwook,是的,只有两个元素