首页 > 解决方案 > 指定从 -x 到 x 的范围

问题描述

我希望我的代码最多计数到一个数字 n,然后计数到它开始的位置,例如 n=4:

1 2 3 4 3 2 1

我使用 range() 从 1-4 得到,然后 reversed(range()) 得到 4-1,但它们是两个单独的块(我会得到两个 4),我确定有一种更好更清洁的方法。我试图指定从 -n 到 n 的范围,但老实说,我不知道是否应该使用长度、范围或切片或其他什么。我对编程很陌生。

标签: jupyter-notebookrangecounting

解决方案


您也缺少 abs 函数来解决这个问题。尝试以下内容

n = 4;
for i in map(lambda x: n - abs(x),range(0-n+1, n)):
    print(i)

输出应如下所示,

1
2
3
4
3
2
1

您也可以包装它并返回一个枚举器,如下所示,

def riseAndFall(n):
    for i in map(lambda x: n - abs(x),range(0-n+1, n)):
        yield i

for i in riseAndFall(4):
    print(i)

推荐阅读