python实现输出一个序列的所有子序列示例


Posted in Python onNovember 18, 2019

如下所示:

def sub(arr):
 finish=[]
 size = len(arr)
 end = 1 << size #end=2**size
 for index in range(end): # shift index
  array = []
  for j in range(size):
   # 00,01,10,11 is symmetrical
   if (index >> j) % 2: # this result is 1, so do not have to write ==
    array.append(arr[j])
  # print(array)
  finish.append(array)
 return finish

python实现输出一个序列的所有子序列示例

移位运算符 << 的优先级大于赋值 =

用01二进制串决定数组中的每个数字是否输出

[]=000;[1]=100;[2]=010;[3]=001;[1,2]=110;[1,2,3]=111…

如何实现?

第一个循环实现的是01串的遍历,eg.由000到111

第二个循环实现的是数组的遍历,eg.将000与数组中的每一位数字做判断

在if语句中,用到了向右移位,由于二进制串是对称的,所以我们可以将01串从后向前与数组中的每一位数字做判断。

eg.001与100对称,110与011对称…

在001中,最后一位是1,说明数组中3需要输出

但是在我们遍历数组的时候,先遇到的是1与arr[0],不过由于对称性,这种情况其实与在100中,后遇到的是1与arr[2]

以上这篇python实现输出一个序列的所有子序列示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用PIPE操作Linux管道
Feb 04 Python
用Python实现一个简单的线程池
Apr 07 Python
在Python中关于中文编码问题的处理建议
Apr 08 Python
Python之父谈Python的未来形式
Jul 01 Python
简单学习Python多进程Multiprocessing
Aug 29 Python
Python读取word文本操作详解
Jan 22 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
Python实现的knn算法示例
Jun 14 Python
Django 静态文件配置过程详解
Jul 23 Python
使用python实现数组、链表、队列、栈的方法
Dec 20 Python
Python列表操作方法详解
Feb 09 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 Python
Python中的四种交换数值的方法解析
Nov 18 #Python
Django将默认的SQLite更换为MySQL的实现
Nov 18 #Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 #Python
详解Django配置优化方法
Nov 18 #Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 #Python
基于python操作ES实例详解
Nov 16 #Python
Python爬取豆瓣视频信息代码实例
Nov 16 #Python
You might like
apache+php完美解决301重定向的两种方法
2011/06/08 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
解析PHP提交后跳转
2013/06/23 PHP
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
Symfony2联合查询实现方法
2016/03/18 PHP
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
2015/09/17 Javascript
JavaScript实现输入框(密码框)出现提示语
2016/01/12 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
node.js cookie-parser 中间件介绍
2016/06/06 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
js实现华丽的九九乘法表效果
2017/03/29 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
JS实现HTML页面中动态显示当前时间完整示例
2018/07/30 Javascript
开发用到的js封装方法(20种)
2018/10/12 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
[02:47]3.19DOTA2发布会 国服成长历程回顾
2014/03/25 DOTA
[00:35]2016完美“圣”典风云人物:冷冷宣传片
2016/12/08 DOTA
[01:25:38]DOTA2-DPC中国联赛 正赛 VG vs LBZS BO3 第一场 1月19日
2021/03/11 DOTA
Python复制文件操作实例详解
2015/11/10 Python
Python实现全角半角字符互转的方法
2016/11/28 Python
安装Python的教程-Windows
2017/07/22 Python
python 把列表转化为字符串的方法
2018/10/23 Python
Python创建字典的八种方式
2019/02/27 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
Python with语句和过程抽取思想
2019/12/23 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
干货:如何写好工作总结报告!
2019/05/10 职场文书
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js