从Python中的一个元组中减去一个元组的元组?

2024-06-12 17:16:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个元组:

nums = ((4, 5, 6), (5, 6, 7), (2, 3))

现在我想创建一个类似的结构,在这个结构中,每个数字都是从一个“基线”数字中减去的。元组的基线编号为:

^{pr2}$

所以我想要的结构是:

# 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中优雅地完成这个任务?在


Tags: inforetc数字结构编号元组基线
2条回答

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))
>>> [[x-baselines[i] for x in nums[i]] for i in range(3)]
[[3, 4, 5], [4.5, 5.5, 6.5], [-1, 0]]

你可以这样做元组

^{pr2}$

相关问题 更多 >