python \\ 더 간략하게 줄일 수 있나요?


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을 이제 막 접하여 어떻게 해야 더 간략해지는지 잘 모르겠습니다. 더 짧게 만들 수 있으시면 도와주세요


조회수 80


Hashcode banner summercoding

3 답변


camping.json을 보아야 알겠지만 len()을 사용하면 데이터 length를 알수 있고 구태여 i +=1과 for loop 를 사용하지 않아도 될텐데요.

  • 2018년 04월 17일에 작성됨
    교육자. 프로그래밍 비전공자. 취미로 파이썬 공부


코드만 줄인 버전입니다.

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))
  • 2018년 04월 17일에 작성됨


이렇게도 줄일 수 있습니다.

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))
  • 2018년 04월 19일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close