做数据的时候碰到一个需求,需要把两个或者多个列表里的元素做排列组合.
例如:
[Python] 纯文本查看 复制代码
01 02 03 04 05 06 07 08 09 10 11 |
|
当时很头疼,这个听起来很简单的需求让我苦恼了一上午,吃中午饭时我突然灵机一动想起了python里的高阶函数之reduce,瞬间就开窍了,草草吃完饭然后花了几分钟写出了这个需求,现在放在这里与诸君共勉.
[Python] 纯文本查看 复制代码
01 02 03 04 05 06 07 08 09 10 11 |
|
至此,完美解决了这个需求,诸君有类似的需求都可以拿走些微修改一下满足自己的需求.
你以为这就完了?
当然没完,基于程序员精益求精的精神,(能写一行绝不写两行),吃完晚饭没事干的我,把他压缩成了一行!
嘿嘿嘿~
fn = lambda x, code=',': reduce(lambda x, y: [str(i)+code+str(j) for i in x for j in y], x)
# 直接调用fn(lists, code)
end~