前言:Element-wise addition of 2 lists?
我想写代码以产生以下行为:
[ 1, 1, ["Alpha"]]
+
[ 2, 2, ["Beta"] ]
|| || ||
\/ \/ \/
[3, 3, ["Alpha", "Beta"]]
在python中。如果没有非常混乱的理解和映射,这可能吗?
答案 0 :(得分:7)
[a + b for a, b in zip(l1, l2)]
答案 1 :(得分:3)
是的,虽然我在调用列表理解凌乱之前会三思而后行,但这是可能的。将operator.__add__
与map
一起传递给两个列表:
import operator
list(map(operator.__add__, l1, l2))
# [3, 3, ['Alpha', 'Beta']]
答案 2 :(得分:2)
这个解决方案使用列表推导,尽管它们非常混乱。此外,它非常易读,并且不需要库
sp <- split(df, df$X1)
inx <- unlist(lapply(sp, function(x) !duplicated(x$total.count == 1) & all(x$total.count == 1)))
df[inx, ]
X1 Category total.count
1 100279 A1 1
7 100281 A1 1
10 100283 A2 1