지능형 리스트를 보통 두가지 용도로 써왔는데요.


string = 'Hello, world!'

characters = [character for character in string]


이렇게 원래의 용도로도 사용하고


string = 'Hello, world!'

[print(character) for character in string]


이렇게 단순 반복 작업 용도로도 많이 사용했는데요.


fluent python 보니 후자는 부작용을 이용한 거라며

지능형 리스트는 생성된 리스트를 사용하지 않을 거면 쓰지 말라고 하더라고요.


그런데 부작용을 사용했다고 해서 쓰면 안되는 이유가 있나요...?

실제 인터넷 보면 후자의 방식을 멋드러지게 사용한 다음 pythonic wow! 이러고들 있던데..