Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.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中从元组中减去元组的元组?_Python_Tuples - Fatal编程技术网

在Python中从元组中减去元组的元组?

在Python中从元组中减去元组的元组?,python,tuples,Python,Tuples,我有一个元组: nums = ((4, 5, 6), (5, 6, 7), (2, 3)) 现在我想创建一个类似的结构,其中每个数字从一个“基线”数字中减去。元组的基线编号为: baselines = (1, 0.5, 3) 所以我想要的结构是: # want: diffs = ((3, 4, 5), (4.5, 5.5, 6.5), (-1, 0)) 我们有: diffs[0] = [x - baselines[0] for x in nums[0]] diffs[1] = [x - b

我有一个元组:

nums = ((4, 5, 6), (5, 6, 7), (2, 3))
现在我想创建一个类似的结构,其中每个数字从一个“基线”数字中减去。元组的基线编号为:

baselines = (1, 0.5, 3)
所以我想要的结构是:

# want: diffs = ((3, 4, 5), (4.5, 5.5, 6.5), (-1, 0))
我们有:

diffs[0] = [x - baselines[0] for x in nums[0]]
diffs[1] = [x - baselines[1] for x in nums[1]]
# etc.

如何在Python中优雅地执行此操作?

zip
与生成器表达式一起使用:

In [66]: nums = ((4, 5, 6), (5, 6, 7), (2, 3))

In [67]: baselines = (1, 0.5, 3)

In [68]: tuple( tuple( val-y for val in x ) for x,y in zip (nums,baselines ))
Out[68]: ((3, 4, 5), (4.5, 5.5, 6.5), (-1, 0))

zip
与生成器表达式一起使用:

In [66]: nums = ((4, 5, 6), (5, 6, 7), (2, 3))

In [67]: baselines = (1, 0.5, 3)

In [68]: tuple( tuple( val-y for val in x ) for x,y in zip (nums,baselines ))
Out[68]: ((3, 4, 5), (4.5, 5.5, 6.5), (-1, 0))
你可以这样做

>>> tuple(tuple(x-baselines[i] for x in nums[i]) for i in range(3))
((3, 4, 5), (4.5, 5.5, 6.5), (-1, 0))
你可以这样做

>>> tuple(tuple(x-baselines[i] for x in nums[i]) for i in range(3))
((3, 4, 5), (4.5, 5.5, 6.5), (-1, 0))