字母组合如何用python实现_python实现多列表组合算法

为解决生成两位字母的所有组合的数学问题,实现本程序的设计。为有同样需要的朋友提供帮助。

问题提出生成以字母开头的两位字母数字组合

例如1

2

3

4

5#已知

list1=['a','b']

list2=['a','b','1','2']

#目标

list3=['aa','ab','a1','a2','ba','bb','b1','b2']

问题解决正是有人不懈的奋斗和无私的奉献,才使得科技不断地进步,向那些提供共享知识的人,致敬

能分享,能开源的科技人,值得赞扬

网上一位牛人,设计了一个特别好的程序,直接拿来用了,表示感谢。1

2

3from functools import reduce

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)

特别说明给出的方案中不仅仅局限于两个列表,可以是多个列表

基于应用驱动的目的,本程序将应用于生成字典,这也是研究这个问题的初衷

用到的reduce函数

描述

reduce() 函数会对参数序列中元素进行累积。函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。

语法

reduce() 函数语法:reduce(function, iterable[, initializer])

参数function — 函数,有两个参数

iterable — 可迭代对象

initializer — 可选,初始参数

返回值:返回函数计算结果。

实例1

2

3

4

5

6

7>>>def add(x, y) : # 两数相加

... return x + y

...

>>> reduce(add, [1,2,3,4,5]) # 计算列表和:1+2+3+4+5

15

>>> reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数

15

更多的python高阶函数

饮水思源

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值