练习:编写一个函数 get_subsets,该函数接收一个列表 lst,返回该列表的所有子集(包括空集和自身)。
def get_subsets(lst):
# 获取列表长度
n = len(lst)
# 计算子集总数
num_subsets = 2 ** n
# 初始化存储所有子集的列表
all_subsets = []
# 遍历从0到num_subsets-1的所有整数
for i in range(num_subsets):
# 初始化当前子集
subset = []
# 遍历列表中的每个元素
for j in range(n):
# 检查第j个元素是否应该包含在当前子集中
# 通过检查i的二进制表示中第j位是否为1来决定
if (i >> j) & 1:
subset.append(lst[j])
# 将当前子集添加到all_subsets中
all_subsets.append(subset)
return all_subsets
# 测试代码
test_list = [1, 2, 3]
subsets = get_subsets(test_list)
print(subsets) # 应输出 [[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]
运行结果如下:
[[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有