내가 정렬 된 배열의 범위 (10)에 의해 배열의 평균을 찾기 위해 노력하고, 예를 들면 : [1,2,3,5,11,12,13,15,22,25,27,30]
반환해야 [6,17,27]
기능을 10의 범위로 숫자를 Groupe의와 1,2,3,5 [사이의 평균 할 예정이다, 11] = (1 + 11) / 2 = 6
[12,13,15,22] = (12 + 22) / 2 = 17
[25,27,30] = (25 + 30) / 2 = 27
여기 내 코드입니다
def par(s):
g = []
i = 0
while i <= len(s):
y =s[i] + 10
n = (s[i]+y)/2
g.append(n)
for x in s:
if y <= x:
i = s.index(x)
break
return g
data = [1,2,3,5,11,12,13,15,22,25,27,30]
# divide it into blocks like [[a .. a+10], [b .. b+10], ...]
result = []
block = None
for d in data:
if block:
if d <= hi:
# belongs to current block
block.append(d)
else:
# start a new block
result.append(block) # finish previous block
block = [d] # start new block
lo, hi = d, d + 10 # reset endpoints for new block
else:
# special handling for first value encountered
block = [d]
lo, hi = d, d + 10
# cleanup
if block:
result.append(block)
# result = [[1, 2, 3, 5, 11], [12, 13, 15, 22], [25, 27, 30]]
# find midpoint for each block
mid_points = [(block[0] + block[-1]) // 2 for block in result]
# mid_points = [6, 17, 27]
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다