■itertools

利用python的itertools可以轻松地进行排列组合运算

itertools的方法基本上都返回迭代器

比如

•itertools.combinations('abcd',2)

这个方法从序列abcd中任选两个进行组合,返回一个迭代器,以tuple的形式输出所有组合,如('a','b'),('a','c')....等等。总共是C24=6种组合

•itertools.permutations('abc',2)

和combinations类似,为排序,输出的迭代器,里面内容是('a','b'),('b','a')....等等,一共是A23=6种组合

•itertools.product('abc','123')

相当于是下面这样的代码

for element1 inlist1:for element2 inlist2:yield element1,element2

计算多个迭代器的笛卡尔积。

•itertools.combinations_with_replacement('abc',2)

和combinations相比之差别在于可重复,即结果中会有('a','a'),('b','b')等出现

==============================================

除了以上纯排列组合之外,itertools还提供很多很便利的方法

•itertools.imap()与map函数相似,但是返回迭代器

比如imap(pow,[1,2],[1,2])

//函数做参数,后跟若干个iterable对象。跟几个取决于前面那个函数有几个参数。而imap的操作是讲多个iterable对象中的元素一一对应地进行给出的函数操作

在这个例子中,最终迭代器中的内容就是pow(1,1)=1,pow(2,2)=4,pow(3,3)=27

•itertools.compress('ABCD',[1,0,1,0])

根据后者列表中的1和0所指出的真假情况,取舍前面给出的序列中的值,返回这些值为内容的迭代器

这个例子中最后的内容就是'A'和'C'

•itertools.chain(list1,list2...)

将参数中的iterable对象按顺序合并起来,返回的迭代器将按顺序给出这些对象中的元素

如果list(chain(list1,list2,list3...))相当于是list1+list2+list3...把这几个list合并起来了

•itertools.count(n)

返回一个无限的迭代器,内容是从n开始一个一个往上加的整数

•itertools.cycle(list)

返回一个无限迭代器,不断迭代list中的所有内容

•itertools.ifilter(func,seq)

对seq中的元素一个一个依次放进func,func是个针对某个值做出判断返回True或者False的函数。

返回的迭代器里面的内容仅为经过func判断后为True的那些元素,和filter()类似

■set

set不是python的一个模块,但是它是个很吊的东西,因为它支持的是集合和集合操作

set(...)是个函数,也是一种数据结构,表明某个对象已经成为了一个集合,同时set类型的数据也是iterable的

•构造集合

set(某个iterable对象) //set构造时会自动除去参数对象中重复的元素

>>> s = set([0,0,1,1,2,2])>>>sset([0,1,2])

•对集合元素的一些操作

s.add(...)   向集合中添加一项

s.update([...])   添加一个iterable对象(也可以是集合),当然已经出现在s中的元素不会再重复出现

s.remove(...)    删除一个元素

s.discard(...)    一个元素若存在则删除(类似字典的get方法)

x (not) in s    判断一个集合是否含有元素

s.issubset(t) 或者 s<=t    判断s是否是t的子集

s & t    交集

s |t    并集

s - t    差集

*对集合的处理往往是暂时的,最终可以用类似于[i for i in s]的方法将set转化为list

python排序函数set_【Python】排列组合itertools 集合set相关推荐

  1. Python排序函数用法

    Python排序函数完美体现了Python语言的简洁性,对于List对象,我们可以直接调用sort()函数(这里称为"方法"更合适)来进行排序,而对于其他可迭代对象(如set,di ...

  2. map函数的用法python,详解Python map函数及Python map()函数的用法

    python map函数 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list ...

  3. python combinations_Python使用combinations实现排列组合的方法

    好久没有写博客了!昨天小牛在上海举办了牛友见面会,现场优惠还是比较大,心仪已久加上一时脑热就入手了.以为会有多么开心,其实目前最大的感受就是焦虑!担心电动车被偷,担心电池被偷,担心路上突然被交警叔叔拦 ...

  4. python排序函数

    python 基础的排序函数 sort .sorted .argsort 一.sort .sorted 1.简单升序排序直接调用sorted函数即可 sort()方法仅定义在list中 ls = li ...

  5. python 排序函数 sort sorted 简介

    sort() 是Python列表的一个内置的排序方法,list.sort() 方法排序时直接修改原列表,返回None: sort() 是Python内置的一个排序函数,它会从一个迭代器返回一个排好序的 ...

  6. python求组合数c_python实现排列组合公式C(m,n)求值

    python实现排列组合公式C(m,n)求值 实验六 理解浮点数运算的误差 实验目的: 1.理解组合数定义式的化简 2.理解浮点数运算的误差可能带来的问题 错误代码 def func(m,n): re ...

  7. Python 字符串和数字的排列组合,无重复

    字符串的排列组合 def perms(s=''): if len(s)<=1: #长度为1的字符串,排列组合就是自己 return [s] sl=[] #放结果 for i in range(l ...

  8. Python,小学奥数排列组合题4位数的密码

    一道小学奥数排列组合题,一个4位数的密码,每位数都不为0,4个数字之和为9,求有多少种不同的密码. 用for循环找出密码的范围,用str和int函数,匹配已知条件,用if语句进行判断. ''' 一个4 ...

  9. python join函数用法-Python join()函数

    今天写python 100例时,有个题目是大致是这样的:已知输入形式是1+3+2+1,要求输出形式为1+1+2+3 一开始思路是将输入的字符串用split()函数划分成数组,在对数组进行排序,再用fo ...

最新文章

  1. 手把手教你搭建一个学习Python好看的 Jupyter 环境
  2. IBD:5-氨基水杨酸治疗后溃疡性结肠炎患者真菌菌群的变化
  3. 4.1.2 OS之文件逻辑结构(顺序文件、索引文件、索引顺序文件、多级索引顺序文件)关于数据库的索引如聚簇索引可以看一下索引文件例题的解析,感觉还是可以收获到东西的
  4. win10安装java不见了,win10安装java以及java配置遇到的坑
  5. 牛客 - 货物种类(差分)
  6. C++匿名对象调用成员函数
  7. Codeforces 338 D. GCD Table
  8. Taro+react开发(85):taro路由参数
  9. mysql 触发器 二进制_Mysql 二进制日志格式 对存储过程,函数,触发器,事件的记录方式的影响...
  10. 【STL】算法 — partial_sort
  11. Java线程池—ThreadPoolExecutor
  12. 【图像检测】基于matlab GUI比值+归一化+相关系数遥感图像【含Matlab源码 737期】
  13. Delphi7 提示未注册解决解决办法,201-09-05日,亲测有效
  14. ug80浩强工具_ug浩强工具安装软件下载-ug浩强工具2.45 官方免费版-东坡下载
  15. Python数据分析U3-matplotlib可视化基础
  16. 给小朋友讲故事——食盐的重要性实验
  17. 《iOS开发进阶》读书笔记
  18. Adaptive Personalized Federated Learning 论文解读+代码解析
  19. springboot中使用aliyun的oss
  20. python爬取豆瓣读书并进行图形化分析

热门文章

  1. 多彩投网站动态爬取[python+selenium]
  2. 【复习】---【noip2009 普及】细胞问题 (1)
  3. perl6 中将 字符串 转成十六进制
  4. centos下配置gitosis服务器
  5. 将本地工程上传到github
  6. POJ 3276 枚举+差分?
  7. 初识makefile
  8. 关于notepad++中ZenCoding插件失灵的原因
  9. 2011阿里巴巴集团实习生招聘笔试题 CC++
  10. windows令牌学习