파이써닉(Pythonic) Code #3 리스트 comprehensions

파이써닉 코드에 대해서 #1에 이어서 계속 살펴보고 있습니다. 오늘은 정말 많이 사용하는 리스트 Comprehensions에 대해 살펴보려고 해요. 가장 많이 사용하는 파이써닉 코드이지만, 그 만큼 까다롭기도 합니다. 한 번 어찌어찌해서 이해가 됐어도, 시간이 지나면 원리가 뭐였더라…하는 그런 구조적인 문법입니다. 장점이라고 하면…음… for + append보다 속도가 빠른 거?

만드는 방법은 아래 리스트 Comprehensions를 사용했을 경우와 그렇지 않은 경우의 차이를 보시면 금방 아실 수 있습니다. 겉보기에는 간단하지만 그래도 연습을 꽤 해야 실전에서 사용할 수 있습니다.

리스트를 한 번 만들어서 0~9를 출력해볼까요?

#리스트 만들기(0~9)

numbers = []
for i in range(10):
    numbers.append(i)

print(numbers)

#Output : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

파이썬 초급때 배웠던 것처럼 for문과 append함수를 사용해서 numbers라는 리스트에 0~9까지 차례로 넣어줬습니다. 그러면 리스트 Comprehensions를 사용해서 똑같은 결과를 만들어보겠습니다.

#리스트 Comprehensions를 사용해서 리스트 만들기(0~9)

numbers = [i for i in range(10)]
print(numbers)

#Output : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

우리가 이제 알 수 있는 것! 리스트 Comprehensions를 사용하게 되면, 코드가 줄어드는 구나~라고 확실히 알 수 있습니다. 위와 같이 아주 간단한 코딩일 경우에는 크게 와닿지 않을 수 있지만 코드가 길어질 수록 리스트 Comprehensions를 사용하게 되면 상당히 많은 코드가 줄어들 수 있습니다. 이번에는 리스트 Comprehensions에 필터(filter) 기능을 사용해보겠습니다.

#리스트 Comprehensions + 필터

numbers = [i for i in range(10) if i % 2 == 0 ]
print(numbers)

#Output : [0, 2, 4, 6, 8]

뒤에 ‘if i % 2 ==0’이라는 조건을 만들어줘서 필터링을 해줬습니다. 우선 한 줄로 효율적인 코딩이 가능하지만, 리스트 Comprehensions를 사용하게 되면 코드가 상당히 직관적이게 됩니다. 결론은 리스트 Comprehensions의 효율성 외에 또 다른 장점은 ‘직관적인 코딩’이 가능하다는 점입니다. 실무에서는 그래서 가장 많이 사용하는 ‘파이써닉 코드’라고 볼 수 있습니다. 리스트 Comprehension을 다양하게 활용해서 사용할 수 있지만 오늘은 기본 개념만을 설명드렸습니다. 앞으로 저희가 살펴볼 다양한 예제에서 많이 나올 예정이니, 그때 리스트 Comprehension의 활용법을 하나씩 추가적으로 배워보도록 하겠습니다.

More from author

71 COMMENTS

  1. Hey there! This is my 1st comment here so I just wanted to give a quick shout out and tell you I really enjoy reading through your blog posts.
    Can you suggest any other blogs/websites/forums that cover the same subjects?
    Thanks a lot!

  2. you’re truly a excellent webmaster. The site loading pace is amazing.
    It sort of feels that you are doing any unique trick.

    Also, The contents are masterpiece. you’ve performed a magnificent job on this subject!

  3. You really make it appear really easy with your presentation but I find this
    topic to be really one thing that I believe I’d never understand.
    It seems too complex and extremely large for me. I’m having a look ahead for your subsequent put
    up, I will attempt to get the hang of it!

  4. Hi, i believe that i saw you visited my blog so i got here to return the want?.I am attempting to in finding things
    to enhance my website!I assume its ok to make use of some of your ideas!!

  5. Hi there I am so delighted I found your website, I really found
    you by error, while I was browsing on Google for something else, Anyways I am here now
    and would just like to say thank you for a marvelous post and a all round thrilling blog (I also love the theme/design), I don’t have time to look over
    it all at the moment but I have bookmarked it and also added in your RSS feeds, so when I
    have time I will be back to read a great deal more, Please do keep
    up the superb job.

  6. Hello there! Would you mind if I share your blog with
    my facebook group? There’s a lot of folks that I think
    would really appreciate your content. Please let me know.
    Thanks

  7. I am really loving the theme/design of your web site.
    Do you ever run into any browser compatibility problems?
    A number of my blog visitors have complained about my site not
    working correctly in Explorer but looks great in Firefox. Do you have any
    ideas to help fix this problem?

  8. Hello would you mind sharing which blog platform you’re working with?

    I’m looking to start my own blog soon but I’m having a hard time deciding between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your layout seems different
    then most blogs and I’m looking for something unique.
    P.S Apologies for getting off-topic but I had to ask!

  9. [url=https://genericcialis40withnorx.quest/]cialis cheapest online prices[/url] [url=https://onlinedrugstore.company/]online pharmacy without prescription[/url] [url=https://orderviagra150rx.quest/]cheap viagra tablets[/url]

  10. Hello, Neat post. There’s an issue along with your site in web explorer, might check
    this? IE still is the marketplace leader and a big component to other folks will omit your excellent writing because of this problem.

  11. [url=http://tretinoin.agency/]tretinoin prescription[/url] [url=http://azithromycint.com/]can you buy azithromycin otc[/url] [url=http://modafinil.monster/]modafinil 100 mg tablet[/url] [url=http://cheapcialispillonline.monster/]tadalafil prices[/url] [url=http://cheapviagradrugrx.quest/]where to get viagra in usa[/url] [url=http://buycialis40cost.quest/]cialis gel capsules[/url] [url=http://finasteride.sbs/]where can i purchase propecia[/url] [url=http://bestcialismedicationforsaleonline.monster/]cialis united states[/url]

  12. Hey there, I think your site might be having browser compatibility issues.
    When I look at your blog in Safari, it looks fine but when opening in Internet Explorer,
    it has some overlapping. I just wanted to give you a quick
    heads up! Other then that, superb blog!

  13. [url=http://viagrawtab.quest/]cheap generic viagra 100mg[/url] [url=http://synthroid.site/]synthroid prescription online[/url] [url=http://xenical.monster/]xenical 42[/url] [url=http://isotretinoin.cfd/]accutane canada online[/url]

  14. hello!,I like your writing very a lot! percentage we keep up a correspondence extra approximately your article on AOL?
    I require a specialist on this house to solve my problem.
    Maybe that is you! Looking forward to see you.

  15. Have you ever considered creating an ebook or guest authoring on other sites?
    I have a blog based on the same information you discuss and would really like to have you share some stories/information. I know my readers would enjoy your work.

    If you’re even remotely interested, feel free to shoot me an e-mail.

  16. [url=http://orderamoxicillin.online/]amoxicillin 500 mg buy[/url] [url=http://viagracheappillonlinedrugstore.monster/]viagra canadian pharmacy generic[/url] [url=http://viagra200tab.monster/]real viagra canada[/url]

  17. It’s appropriate time to make some plans for the future and it’s time
    to be happy. I have read this post and if I could I desire to suggest you some
    interesting things or suggestions. Perhaps you can write next articles referring to this article.
    I desire to read more things about it!

  18. I’m really inspired together with your writing abilities
    as well as with the format to your blog. Is this a paid subject matter or did
    you modify it yourself? Anyway stay up the excellent high quality writing, it’s rare to see a nice blog
    like this one nowadays..

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Related posts

60코딩 커뮤니티spot_img

Latest posts

‘기초~중급 Python 문법’ 정모(2022.03.04)

최근에 기초~중급 수준의 내용으로 정모를 가졌어요. 물론, 저희 60coding은 클래스 모임이 아닌 코딩 공부(주제는 미리 공지) 리뷰와 잡담 위주의 모임을 추구합니다. 60Coding의 최민진 멘토님이...

파이썬 람다(Lambda) & Map 함수 #2

지난 콘텐츠에서는 람다(Lambda)와 Map을 살짝 살펴봤어요. 람다와 맵은 같이 사용하는 경우가 많고, 또 다른 Reduce() 역시 람다, 맵 함수와 같이 많이 사용하게 됩니다. 우선...

파이썬 람다(Lambda) & Map 함수 #1

람다(Lambda) 함수 뭔가 거창하고 수학에서 유래된 이름을 갖고 있기 때문에 상당히 어려운 놈일 거라 생각하시는 분들이 있겠지만, 람다(Lambda) 함수는 기존의 함수를 조금 더 간단히 축약된...