Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python 3中减去嵌套列表中的元素?_Python_Python 3.x_List - Fatal编程技术网

如何在Python 3中减去嵌套列表中的元素?

如何在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

我有一个嵌套列表(子列表只有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 = [[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,是的,只有两个元素