Укажите диапазон от -x до x - PullRequest
0 голосов
/ 29 января 2020

Я хочу, чтобы мой код считал до числа n, а затем до того места, где он начинался, например, n = 4:

1 2 3 4 3 2 1

I ' мы использовали range (), чтобы получить от 1 до 4, а затем перевернули (range ()), чтобы получить до 4-1, но это два отдельных блока (и я бы получил два 4), и я уверен, что есть лучше и чище. Я пытался указать диапазон от -n до n, но я, честно говоря, понятия не имею, должен ли я использовать длину, диапазон или срезы или что-то еще. Я очень новичок в программировании.

1 Ответ

0 голосов
/ 29 января 2020

Вам не хватает функции 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)
...