【发布时间】:2018-11-14 07:48:55
【问题描述】:
对于字符串列表, 在这里将乘法运算定义为连接:
l1 = ['aa', 'bb', 'cc']
l2 = ['11', '22']
l3 = l1 op l2
预期输出:
l3 = ['aa11', 'aa22', 'bb11', 'bb22', 'cc11', 'cc22']
我们可以简单地使用
for l in l1:
for ll in l2:
l3.append(l+ll)
但如果能听到 Pythonic 的解决方案,我将不胜感激。
【问题讨论】:
-
这里的“不是pythonic”是什么?您的意思是“难以理解的代码 = pythonic”吗?想想会支持你的代码的开发人员。他们会很高兴将这种逻辑完全按照您所做的形式(嵌套循环)。 @jedwards 的解决方案从可维护性和理解性的角度来看也是不错的。
-
你实现的不是点积。
-
@OlivierMelançon 正确。它应该被表述为多重化。
-
是运算+操作还是运算函数
标签: python string list concatenation cartesian-product