美文网首页
排列、组合、生成器、正则表达式

排列、组合、生成器、正则表达式

作者: 夏威夷的芒果 | 来源:发表于2018-11-14 22:07 被阅读23次

从 n 个不同元素中取出 m (m <n)个元素,按照一定的顺序排成一列,叫做从 n 个元素中取出 m 个元素的一个排列(Arrangement)。
特别地,当 m=n 时,这个排列被称作全排列(Permutation)

import itertools

mylist=list(itertools.permutations([1,2,3,4],2))  #有序地,4个里面取出来2个
print(mylist)
print(len (mylist))

运行结果

[(1, 2), (1, 3), (1, 4), (2, 1), (2, 3), (2, 4), (3, 1), (3, 2), (3, 4), (4, 1), (4, 2), (4, 3)]
12
import itertools
mylist=list(itertools.combinations([1,2,3,4],2))     #无序地,4个里面取出来2
print(mylist)
print(len (mylist))

运行结果

[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)]
6
  • 密码组合尝试


使用生成器可以减小内存。

正则表达式

概述、match函数

search函数

findall函数

匹配单个字符与数字

锚字符、边界字符

匹配多个字符

切分字符串

finditer函数

sub的字符串替换修改

match和分组

编译减小重编译成本

常见的正则形式:

  • QQ
re_qq= re.compile(r"\d{5,10}$") 
print(re_qq.match("8765432"))
  • 邮件
#字母开头、中间是任意字母数字或者下划线
re_ mail = re.compile(r"^\w(_|\w)*@\w+\.\w{1,3}$")
print (re_ mail.search ("a_12@qq.com"'))

手机

re_mobile = re.compile(r"^1[34578]\d{9}$")
print(re_mobile.search("13765765432"))

座机

re_phone = re.compile(r"^0[1-9]\d{1,2}-\d{8}$")
print(re_phone.search("010-12343673"))

用户名

#0-15位字母数字
re_user = re.compile(r"^[a-zA-Z][a-zA-Z0-9]{0,15}$") 
print(re_user.search("sunck"))

密码

re_passwd = re.compile(r"^[a-zA-Z0-9].{5,15}$")
print(re_passwd.search("1fjiehf&%^"))

生日

re_birthday = re.compile(r"^((18\d{2})|(19\d{2})|(20[0-1]\d))-(1[0-2]|0[1-9])-([0][1-9]|[1-2][0-9]|3[0-1])$") 
print(re_birthday.search("1813-09-12"))

IP地址

re_ip = re.compile(r"^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\\d)\.(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$") 
print(re_ip.search("1.4.34.34"))

相关文章

  • 排列、组合、生成器、正则表达式

    从 n 个不同元素中取出 m (m

  • 14-正则表达式

    一、破解密码 排列 代码演示: 2.组合 代码演示: 3.排列组合 代码演示: 二、正则表达式 1.引入案例 代码...

  • 时间长了就生疏的排列组合

    排列数:组合数:全排列:排列是先组合再排列: 最基本的排列组合公式,不能忘在脑后,应该熟稔于心。 排列和组合的区...

  • 排列组合公式及排列组合算法

    排列组合公式 排列组合公式/排列组合计算公式 公式P是指排列,从N个元素取M个进行排列。 公式C是指组合,从N个元...

  • 排列组合-js

    排列组合 数学相关知识:5分钟彻底了解排列组合 参考:程序员必备算法——排列组合 排列有序,组合无序 3选2 :排...

  • 排列组合——排列

    学习概率论与数理统计,要用到排列组合的知识,更重要的是要用到排列组合的思维方法,因此,学习概率与统计是很有必要了解...

  • 第7节:行程、排列组合问题

    1、行程问题 2、排列组合 排列 组合 分类问题,加法 分步问题,乘法

  • 算法实际应用集(上)

    使用笛卡尔算法进行sku组合 需求 对商品规格进行排列组合,电商的sku商品组合 功能截图,对商品规格进行组合排列...

  • TODO:排列组合问题:n个数中取m个

    TODO:排列组合问题:n个数中取m个 排列组合是组合学最基本的概念。所谓排列,就是指从给定个数的元素中取出指定个...

  • SQL进阶教程之1.2自连接

    自连接用法 排列组合(重复排列/不重复排列/组合) 删除重复项 查找局部不一致的列 排序 用法1:可重排列应用场景...

网友评论

      本文标题:排列、组合、生成器、正则表达式

      本文链接:https://www.haomeiwen.com/subject/pchsfqtx.html