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 IDE PyCharm的基本快捷键和配置简介
Nov 04 Python
Python实现获取磁盘剩余空间的2种方法
Jun 07 Python
Python线性回归实战分析
Feb 01 Python
对Python3中的print函数以及与python2的对比分析
May 02 Python
Python continue继续循环用法总结
Jun 10 Python
python实现顺时针打印矩阵
Mar 02 Python
Django获取该数据的上一条和下一条方法
Aug 12 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
python基于celery实现异步任务周期任务定时任务
Dec 30 Python
Python requests及aiohttp速度对比代码实例
Jul 16 Python
Python调用Redis的示例代码
Nov 24 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
May 31 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
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
第一节--面向对象编程
2006/11/16 PHP
PHP中防止SQL注入实现代码
2011/02/19 PHP
Admin generator, filters and I18n
2011/10/06 PHP
smarty高级特性之对象的使用方法
2015/12/25 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
nginx 设置多个站跨域
2021/03/09 Servers
javascript document.referrer 用法
2009/04/30 Javascript
JavaScript的parseInt 取整使用
2011/05/09 Javascript
JS继承 笔记
2011/07/13 Javascript
uploadify在Firefox下丢失session问题的解决方法
2013/08/07 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
javascript计时器详解
2015/02/28 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
jQuery实现滚动效果
2017/11/17 jQuery
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
vue.js中created方法作用
2018/03/30 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
python实现爬取千万淘宝商品的方法
2015/06/30 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
python属于软件吗
2020/06/18 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
关于读书的演讲稿
2014/05/07 职场文书
病媒生物防治方案
2014/05/13 职场文书
股份合作协议书
2014/09/10 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android