如何基于python生成list的所有的子集

 更新时间:2019年11月11日 14:50:57   作者:Alan_LJP  
这篇文章主要介绍了如何基于python生成list的所有的子集,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了如何基于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 爬取13个旅游城市,告诉你五一大家最爱去哪玩?

    详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?

    这篇文章主要介绍了Python 爬取13个旅游城市,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 18个好用的Python技巧分享(建议收藏)

    18个好用的Python技巧分享(建议收藏)

    在这篇文章中,我们将讨论最常用的一些python技巧,这些技巧都是在日常工作中使用过的简单的Trick,小编觉得好东西就是要拿出来和大家一起分享哒
    2023-07-07
  • 浅谈Django的缓存机制

    浅谈Django的缓存机制

    这篇文章主要介绍了浅谈Django的缓存机制,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 对python-3-print重定向输出的几种方法总结

    对python-3-print重定向输出的几种方法总结

    今天小编就为大家分享一篇对python-3-print重定向输出的几种方法总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • Python入门教程之if语句的用法

    Python入门教程之if语句的用法

    这篇文章主要介绍了Python入门教程之if语句的用法,是Python入门的基础知识,需要的朋友可以参考下
    2015-05-05
  • python中aioysql(异步操作MySQL)的方法

    python中aioysql(异步操作MySQL)的方法

    这篇文章主要介绍了aioysql(异步操作MySQL)-python 的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • 使用python绘制温度变化雷达图

    使用python绘制温度变化雷达图

    这篇文章主要为大家介绍了使用python绘制温度变化雷达图,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • python计算圆周率的5种方法

    python计算圆周率的5种方法

    这篇文章主要给大家介绍了关于python计算圆周率的5种方法,圆周率(Pi)是圆的周长与直径的比值,一般用希腊字母π表示,是一个在数学及物理学中普遍存在的数学常数,需要的朋友可以参考下
    2023-07-07
  • Python 的矩阵传播机制Broadcasting和矩阵运算

    Python 的矩阵传播机制Broadcasting和矩阵运算

    这篇文章主要介绍了Python 的矩阵传播机制Broadcasting和矩阵运算,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-06-06
  • python简单验证码识别的实现方法

    python简单验证码识别的实现方法

    这篇文章主要给大家介绍了关于python简单验证码识别的实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05

最新评论