如何基于python生成list的所有的子集
2019-12-13 12:12
99 查看
这篇文章主要介绍了如何基于python生成list的所有的子集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
不使用递归且不引入标准库,单纯用两个for循环即可得出一个list的所有子集
L = [1, 2, 3, 4] List = [[]] for i in range(len(L)): # 定长 for j in range(len(List)): # 变长 sub_List = List[j] + [L[i]] if sub_List not in L: List.append(sub_List) print('List =', List)
主要思想:
变长的 List 中的所有元素将会被不断地重复遍历,直到遍历完定长的 L
当然,不进行条件判断也行:
L = [1, 2, 3, 1] List = [[]] for i in range(len(L)): # 定长 for j in range(len(List)): # 变长 List.append(List[j] + [L[i]]) print('List =', List)
最后,如果考虑到程序的效率问题,那么建议引入 python 标准库中的 itertools,然后调用 combinations 这个函数
这样可以更加高效地得到一个 list 的所有的子集
代码如下:
from itertools import combinations L = [1, 2, 3, 1] result_list = sum([list(map(list, combinations(L, i))) for i in range(len(L) + 1)], []) print('result_list =', result_list)
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
- Python中的list与tuple集合区别解析
- Python中list的交、并、差集获取方法示例
- Python实现两个list求交集,并集,差集的方法示例
- python 集合 并集、交集 Series list set 转换的实例
- Python判断两个list是否是父子集关系的实例
- Python求两个list的差集、交集与并集的方法
- Python中list循环遍历删除数据的正确方法
- 详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法
- Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str
相关文章推荐
- 基于Python的Selenium自动化(4)—如何生成测试报告
- 经典重访: 如何按序生成集合的所有子集
- 如何获取Python中list的子集
- python把list的所有元素生成排列和组合
- 基于python的手机销售系统(list/dict)
- [python] [转]如何自动生成和安装requirements.txt依赖
- 不知道如何生成字母数字验证码?Python为你揭秘
- JAVA中如何取出两个不同List对象(对象一致)中所有不同的对象的集合
- Python打印list中的所有元素(list嵌套)
- 如何基于windows系统部署Python的虚拟运行环境
- 第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?
- Python如何快速生成随机验证码
- Python如何生成树形图案
- python 中如何判断list中是否包含某个元素
- 如何充分利用多核CPU,计算很大的List中所有整数的和
- Python如何拉平(flatten)嵌套列表(nested list)
- python利用unitest生成的报告如何输出为html
- subsets之给定一个数列&生成该数列所有的子集&升序
- 如何基于Python获取图片的物理尺寸
- 2.6 Python里面如何实现tuple和list的转换?