首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >定义一个用于倒计时跳跃数字的函数

定义一个用于倒计时跳跃数字的函数
EN

Stack Overflow用户
提问于 2021-04-28 00:46:00
回答 5查看 95关注 0票数 0
代码语言:javascript
运行
复制
def count_down_skip(start, skip=0):
    """
    Counting down a sequence with a skip value,
    from a defined start point in reversed order.

    Args:
        start: start loop index.
        skip: number to skip over.

    Returns:
        (list): skipped list.

    """
    return [num for num in reversed(range(start + 1)) if num != skip]


print("... ".join(map(str, count_down_skip(10,1))) + "!")

这段代码可以输出10到0,没有1,而如果10到0没有1 4 3(跳过这些数字),那么我该怎么做?我试着改变指纹:

代码语言:javascript
运行
复制
print("... ".join(map(str, count_down_skip(10,1,4,3))) + "!")

但是发生了错误...

在python中为倒计时数字定义一个函数

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2021-04-28 01:00:14

最好的解决方案是,

代码语言:javascript
运行
复制
def count_down_skip(start, *skip):
    return [num for num in reversed(range(start + 1)) if num not in skip]


print("... ".join(map(str, count_down_skip(10,1,4,3))) + "!")
票数 1
EN

Stack Overflow用户

发布于 2021-04-28 00:54:34

代码语言:javascript
运行
复制
def count_down_skip(start, *args):
    return [num for num in reversed(range(start + 1)) if num not in args]


print("... ".join(map(str, count_down_skip(10,1,4,3))) + "!")

输入的参数不能多于函数定义中的参数。但是,您可以使用*args作为参数。这允许向函数输入可变数量的参数。

票数 3
EN

Stack Overflow用户

发布于 2021-04-28 00:50:05

您可以获取要跳过的号码列表。然后将每个列表项与range(num+1)中的列表项进行比较。

代码语言:javascript
运行
复制
def count_down_skip(start, skip = []):
    return [num for num in reversed(range(start + 1)) if num not in skip]

print(count_down_skip(10,[1,4,3]))
#[10, 9, 8, 7, 6, 5, 2, 0]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67287296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档