交叉连接 2 个向量的元素以生成第三个向量

2024-04-16

我有 2 个向量,想要将一个向量分布到另一个向量上以形成第三个向量,例如:

V1 = (a,b,c)
V2 = (d,e,f)

Result:

V3 = (ad,ae,af,bd,be,bf,...cf) 'nine total elements

我知道如何做到这一点的唯一方法是循环。我尝试过搜索多种不同的方法,但找不到“一行代码”解决方案来避免循环。

如果我错过了,请指出我。我可能没有找到正确的搜索参数。

如果不可能,请免除我的痛苦并让我知道:,(。

如果有答案,请分享。


你没说清楚是什么操作ab方法。我假设您想要将两个实数相乘。

在 Python 中,您可以使用推导式。这是完整的代码片段。

v1 = (2, 3, 5)
v2 = (7, 11, 13)
v3 = tuple(x * y for x in v1 for y in v2)

的价值v3 is then

(14, 22, 26, 21, 33, 39, 35, 55, 65)

如所愿。如果你想要一个 Python 列表,代码看起来更简单:使用

v3 = [x * y for x in v1 for y in v2]

如何将操作更改为串联或任何其他所需的操作将是显而易见的。以下是字符串连接的示例代码:

v1 = ('a', 'b', 'c')
v2 = ('d', 'e', 'f')
v3 = tuple(x + y for x in v1 for y in v2)

这导致

('ad', 'ae', 'af', 'bd', 'be', 'bf', 'cd', 'ce', 'cf')

你也可以使用product()来自itertools模块(我在这个答案的第一个版本中使用)但上面的似乎更容易。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

交叉连接 2 个向量的元素以生成第三个向量 的相关文章

随机推荐