본문 바로가기
Coding/초보자를 위한 파이썬 300제

초보자를 위한 파이썬 300제 // 198 append()

by 포스트it 2021. 2. 22.
728x90
반응형

 

문제

ohlc 리스트에는 시가(open), 고가 (high), 저가 (low) , 종가(close)가 날짜별로 저장돼 있다. 고가와 저가의 차이를 변동폭으로 정의할 때 변동폭을 volatility 이름의 리스트에 저장하라.

ohlc = [["open", "high", "low", "close"],
        [100, 110, 70, 100],
        [200, 210, 180, 190],
        [300, 310, 300, 310]]
        
>> print(volatility)
[40, 30, 10]

내풀이

ohlc = [["open", "high", "low", "close"],
        [100, 110, 70, 100],
        [200, 210, 180, 190],
        [300, 310, 300, 310]]
volatility = []

for i in ohlc[1:]:
    volatility.append(i[1] - i[2])
print(volatility)

결과값
[40, 30, 10]

정답

volatility = []
for row in ohlc[1:]:
    volatility.append(row[1]-row[2])

range 구문을 사용해서도 문제를 풀 수 있습니다.

volatility = []
for i in range(1, len(ohlc)):
    volatility.append(ohlc[i][1]-ohlc[i][2])
print(volatility)

append와 range 방법이 있지만 append가 확실히 직관적이라 좋다.
728x90
반응형

댓글