You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python的counter函数使其支持列表输入并返回列表结果

实现方法

有几种简单的方式可以让这个函数支持列表参数并返回列表结果:

方法1:直接修改原函数,兼容单个数字和列表输入

修改后的函数会先判断输入类型,列表输入就遍历处理每个元素,单个数字则按原逻辑执行:

def counter(num):
    # 处理列表输入
    if isinstance(num, list):
        result = []
        for n in num:
            count = 0
            current = n
            while current != 0:
                if current % 2 == 0:
                    current /= 2
                else:
                    current -= 1
                count += 1
            result.append(count)
        return result
    # 处理单个数字输入
    count = 0
    while num != 0:
        if num % 2 == 0:
             num /= 2
        else:
            num -= 1
        count += 1
    return count

调用示例:

print(counter([3, 6, 8]))  # 输出 [3, 4, 4]
print(counter(5))          # 输出 4

方法2:保留原函数,新增包装函数

不改动原函数逻辑,写一个专门处理列表的函数,内部调用原counter:

def counter(num):
    count = 0
    while num != 0:
        if num % 2 == 0:
             num /= 2
        else:
            num -= 1
        count += 1
    return count

def counter_list(num_list):
    return [counter(num) for num in num_list]

调用示例:

print(counter_list([3, 6, 8]))  # 输出 [3, 4, 4]

方法3:直接用列表推导式调用原函数

如果不想新增函数,调用时直接用列表推导式批量处理:

num_list = [3, 6, 8]
result = [counter(num) for num in num_list]
print(result)  # 输出 [3, 4, 4]

内容的提问来源于stack exchange,提问作者Kayla

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 17:02:38