python \\ 더 간략하게 줄일 수 있나요?
조회수 733회
import json
with open('C:\BicData\camping.json',encoding = 'utf-8') as k:
data = json.load(k)
i = 0
for camping in data['records']:
if '자동차야영장' in camping['야영(캠핑)장구분']:
i += 1
print('전국에 위치한 자동차 야영장은 총',i,'개 입니다.')
json 사용해서 간단한 코딩을 해봤는데 python을 이제 막 접하여 어떻게 해야 더 간략해지는지 잘 모르겠습니다. 더 짧게 만들 수 있으시면 도와주세요
-
(•́ ✖ •̀)
알 수 없는 사용자
3 답변
-
코드만 줄인 버전입니다.
import json with open('C:\BicData\camping.json',encoding = 'utf-8') as k: data = json.load(k) i = len(list(filter(lambda item:'자동차야영장' in item['야영(캠핑)장구분'], data['records']))) print('전국에 위치한 자동차 야영장은 총{}개 입니다.'.format(i))
-
camping.json을 보아야 알겠지만 len()을 사용하면 데이터 length를 알수 있고 구태여 i +=1과 for loop 를 사용하지 않아도 될텐데요.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
이렇게도 줄일 수 있습니다.
import json with open('C:\BicData\camping.json',encoding = 'utf-8') as k: data = json.load(k) i = len([c for c in data['records'] if '자동차야영장' in c['야영(캠핑)장구분']]) print('전국에 위치한 자동차 야영장은 총{}개 입니다.'.format(i))
댓글 입력