from itertools import starmap, accumulate
def moving_everage(nums):
return starmap(lambda a, b: b/a, enumerate(accumulate(nums), 1))
nums = [-3, 2, 5, 7, 2, 1]
print(list(moving_everage(nums))) # [-3.0, -0.5, 1.3333333333333333, 2.75, 2.6, 2.3333333333333335]
가독성은 안 좋게 되지만, 작성하는 입장에서는 손이 엄청 덜 가는....... 이동 평균을 이보다 짧게 작성할 수 있을지
moving_averages가 아니라 moving_average가 필요한 거라면 sum(nums)/len(nums) 하면 되는데
그건 이동 평균이 아니라 그냥 평균이잖아
그리고 리스트가 아니라 제너레이터니까 s를 안 붙이는 게 나을 듯. 이동 평균을 하나씩 생산하니까