python中列表的元素级、变量组合

python中列表的元素级、变量组合,python,list,elementwise-operations,Python,List,Elementwise Operations,前言: 我希望通过编写代码来实现以下行为: [ 1, 1, ["Alpha"]] + [ 2, 2, ["Beta"] ] || || || \/ \/ \/ [3, 3, ["Alpha", "Beta"]] 在python中。如果没有非常混乱的理解和映射,这是可能的吗?是的,这是可能的,尽管在将列表理解称为混乱之前我会三思而后行。传递运算符。\uuu将\uuu添加到映射以及两个列表: import operator list(map(operator

前言:

我希望通过编写代码来实现以下行为:

[ 1, 1, ["Alpha"]]
+
[ 2, 2, ["Beta"] ]
||       ||     ||
\/       \/     \/
[3, 3, ["Alpha", "Beta"]]

在python中。如果没有非常混乱的理解和映射,这是可能的吗?

是的,这是可能的,尽管在将列表理解称为混乱之前我会三思而后行。传递
运算符。\uuu将\uuu添加到
映射
以及两个列表:

import operator
list(map(operator.__add__, l1, l2))
# [3, 3, ['Alpha', 'Beta']]

这个解决方案使用列表理解,尽管依我看,它们并不凌乱。而且,它可读性很好,不需要库

a = [1, 1, ["ALPHA"]]
b = [2, 2, ["BETA"]]
c = [a[i]+b[i] for i in range(len(a))]
print(c)

投票以重复方式结束,因为给出的答案(以及蟒蛇式答案)与链接问题重复。简短的回答是
,您可以使用循环避免映射/理解。我还将添加,因为没有人添加此答案,您可以使用reduce和自定义lambda来聚合任意数量的奇怪数据类型。确实如此。我很想知道OP是否认为这是一个“混乱的理解”。我相信在一个较旧的python版本中,这对自定义定义的类不起作用,或者至少对我的用例不起作用,因为我尝试了这个,但失败了。不幸的是,我现在忘记了那个用例,但至少对我的机器来说,这现在起作用了。你可以使用
操作符。add
@juanpa.arrivillaga。我想成为一个特殊的雪花。操作符。add更能回答我的问题。我接受这个问题就是因为这个。@Erich我相信add和uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。但是,如果在类中定义
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
,则行为将与add不同。这是我问的更多的问题,但有点事后诸葛亮。
[a + b for a, b in zip(l1, l2)]