前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python编程每日一练

Python编程每日一练

原创
作者头像
软件架构师Michael
发布于 2025-03-18 02:13:09
发布于 2025-03-18 02:13:09
6100
代码可运行
举报
运行总次数:0
代码可运行

练习:编写一个函数 get_subsets,该函数接收一个列表 lst,返回该列表的所有子集(包括空集和自身)。

代码语言:python
代码运行次数:0
运行
AI代码解释
复制

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]]

运行结果如下:

代码语言:txt
AI代码解释
复制
[[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档