범위 목록에서 숫자 제거

Nov 17 2020
print(list(range(0, n+1, 10)))

그래서 저는 n을 포함하여 10의 양의 배수 목록을 인쇄하고 싶습니다. 그러나 양의 정수로 계산되지 않는 0목록을 인쇄 할 때 제거하는 방법을 잘 모르겠습니다 0. 나는 프로그래밍이 처음이라서 내가 시도한 유일한 것은

a = list(range(0, n+1, 10))
a.remove(0)
print(a)

하지만이 모든 것을 한 줄로 할 수 있는지 궁금합니다. print(list(range(0, n+1, 10)))

답변

3 Samwise Nov 17 2020 at 22:14

가장 쉬운 방법은 범위를 0이 아닌 10에서 시작하는 것입니다.

>>> n = 100
>>> list(range(10, n+1, 10))
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

"이 범위에서이 숫자를 빼는 방법"문제에 대한보다 일반적인 해결책은 list()함수 대신 목록 이해를 사용 하고 if절을 추가하는 것입니다 .

>>> [x for x in range(0, n+1, 10) if x > 0]
[10, 20, 30, 40, 50, 60, 70, 80, 90, 100]

이렇게하면 "30의 배수가 아닌 10의 배수를 모두주세요"와 같은 더 복잡한 작업을 수행 할 수 있습니다.

>>> [x for x in range(0, n+1, 10) if x % 30]
[10, 20, 40, 50, 70, 80, 100]
3 dantechguy Nov 17 2020 at 22:14

range, 여기 에있는 문서 는 다른 매개 변수를 지원하며, 이는 사용자가 알고있는대로 다른 출력으로 이어지는 다른 입력입니다.

첫 번째 매개 변수는 시작 값이므로 다음과 같이하면됩니다.

n = 60
list(range(10, n+1, 10))

그런 다음 10부터 시작하여 10의 배수를 인쇄합니다.

[10, 20, 30, 40, 50, 60]
an4s911 Nov 17 2020 at 22:11

이것은 작동합니다.

a = list(range(10, n+1, 10))