입력 한 두 값 사이의 값으로 목록을 작성하려면 어떻게해야합니까? 예를 들어 11에서 16 사이의 값에 대해 다음 목록이 생성됩니다.
list = [11, 12, 13, 14, 15, 16]
답변
사용하십시오 range
. Python 2.x에서는 목록을 반환하므로 필요한 것은 다음과 같습니다.
>>> range(11, 17)
[11, 12, 13, 14, 15, 16]
파이썬 3.x에서는 range
이터레이터입니다. 따라서 목록으로 변환해야합니다.
>>> list(range(11, 17))
[11, 12, 13, 14, 15, 16]
참고 : 두 번째 숫자는 배타적입니다. 따라서 여기서는 16+1
=17
편집하다:
에 의해 증가에 대한 질문에 응답하려면 0.5
, 가장 쉬운 옵션은 아마도 사용하는 것입니다 NumPy와의 arange()
과를 .tolist()
:
>>> import numpy as np
>>> np.arange(11, 17, 0.5).tolist()
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5,
14.0, 14.5, 15.0, 15.5, 16.0, 16.5]
답변
찾고있는 것 같습니다 range()
:
>>> x1=11
>>> x2=16
>>> range(x1, x2+1)
[11, 12, 13, 14, 15, 16]
>>> list1 = range(x1, x2+1)
>>> list1
[11, 12, 13, 14, 15, 16]
0.5
대신에 증분하려면 다음 과 1
같이 말합니다.
>>> list2 = [x*0.5 for x in range(2*x1, 2*x2+1)]
>>> list2
[11.0, 11.5, 12.0, 12.5, 13.0, 13.5, 14.0, 14.5, 15.0, 15.5, 16.0]
답변
시험:
range(x1,x2+1)
이것은 Python 2.x의 목록이며 대부분 Python 3.x의 목록처럼 동작합니다. Python 3을 실행 중이고 수정할 수있는 목록이 필요한 경우 다음을 사용하십시오.
list(range(x1,x2+1))
답변
float 유형에서 작동하는 함수와 같은 범위를 찾고 있다면 여기에 매우 좋은 기사가 있습니다.
def frange(start, stop, step=1.0):
''' "range()" like function which accept float type'''
i = start
while i < stop:
yield i
i += step
# Generate one element at a time.
# Preferred when you don't need all generated elements at the same time.
# This will save memory.
for i in frange(1.0, 2.0, 0.5):
print i # Use generated element.
# Generate all elements at once.
# Preferred when generated list ought to be small.
print list(frange(1.0, 10.0, 0.5))
산출:
1.0
1.5
[1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5, 7.0, 7.5, 8.0, 8.5, 9.0, 9.5]
답변
파이썬에서 목록 이해를 사용하십시오. 목록에도 16이 필요하므로 x2 + 1을 사용하십시오. 범위 기능은 기능의 상한을 제외합니다.
list = [x 범위 x (x1, x2 + 1)]
답변
x와 y 사이의 범위를 원한다고 가정합니다.
range(x,y+1)
>>> range(11,17)
[11, 12, 13, 14, 15, 16]
>>>
3.x 지원을위한 사용 목록
답변
파이썬에서는 매우 쉽게 할 수 있습니다.
start=0
end=10
arr=list(range(start,end+1))
output: arr=[0,1,2,3,4,5,6,7,8,9,10]
또는 주어진 숫자까지 배열을 반환하는 재귀 함수를 만들 수 있습니다.
ar=[]
def diff(start,end):
if start==end:
d.append(end)
return ar
else:
ar.append(end)
return diff(start-1,end)
출력 : ar = [10,9,8,7,6,5,4,3,2,1,0]