시퀀스 평균은 sum(sequence)/len(sequence)
이므로 magnitudes
과 measures
을 반복해야하며 이러한 평균 (산술 평균)을 계산하여 사전에 저장하십시오.
당신이 이것을 달성 할 수있는 훨씬 더 많은 방법이 있습니다. 모든 결과는 {'mag1': 2.0, 'mag2': 3.5, 'mag3': 5.0}
입니다.
for i in range()
루프를 사용 :
def exp(magnitudes, measures):
means = {}
for i in range(len(magnitudes)):
means[magnitudes[i]] = sum(measures[i])/len(measures[i])
return means
print(exp(['mag1', 'mag2', 'mag3'], [[1, 2, 3], [3, 4], [5]]))
을하지만 당신은 목록의 두 인덱스와 값을 필요로하는 경우이 경우에 훨씬 더 적합 for i, val in enumerate(sequence)
접근 사용할 수 있습니다
def exp(magnitudes, measures):
means = {}
for i, mag in enumerate(magnitudes):
means[mag] = sum(measures[i])/len(measures[i])
return means
print(exp(['mag1', 'mag2', 'mag3'], [[1, 2, 3], [3, 4], [5]]))
또 다른 문제의 가죽을 여기에 i
색인은 magnitudes
에 속하지만 우리는 또한 measures
에서 값을 얻고 있습니다.이 값은 magnitudes
과인 경우 큰 문제는 아닙니다.같은 길이이지만 magnitudes
이 더 커지면 IndexError
이됩니다. 그래서 그것은 내게 같다 zip
함수를 사용하는 것이 가장 좋은 선택이 될 것입니다 (실제로 파이썬 3.6에서는 두 개의리스트가 같은 길이가 될 필요가 없으며 단지 길이가 가장 짧은 것의 길이를 사용합니다. 결과) :
def exp(magnitudes, measures):
means = {}
for mag, mes in zip(magnitudes, measures):
means[mag] = sum(mes)/len(mes)
return means
print(exp(['mag1', 'mag2', 'mag3'], [[1, 2, 3], [3, 4], [5]]))
그래서 당신이 좋아하고 문서화 문자열을 추가하는 것을 잊지 않는 하나의 요구 사항에 맞는 예를 사용하여 주시기 바랍니다.
당신이 같은 파이썬 방법이 필요하지 않지만 사전 이해가 활동하기 시작하는 때도 짧아 질 수 있습니다 가능성 :
def exp(magnitudes, measures):
return {mag: sum(mes)/len(mes) for mag, mes in zip(magnitudes, measures)}
print(exp(['mag1', 'mag2', 'mag3'], [[1, 2, 3], [3, 4], [5]]))