List Comprehension[각주:1] 으로 생성: [x for x in iterable]
생성자 (Constructor)를 통해 생성: list() 또는 list(iterable)
이 중 생성자를 통한 list 생성은 초보자에겐 그닥 추천하고 싶지 않은데, iterable 에 대한 개념이 제대로 잡히지 않은 상태에서 list('abc')[각주:2]와 같이 꺿쇠괄호와 비슷한 문법으로 list를 생성해서 기대와는 전혀다른 결과가 나온다거나 할 수 있으므로 주의하자.
아마 파이썬을 사용하다보면 가장 많이 사용할 기능이 아닐까 싶다. 가장 논리적이고 인풋값을 그나마 가장 그대로 저장하기 때문이라고 생각된다. set은 중복값을 날려버리고, dict는 항상 key 와 value가 있는 상황은 아니고, tuple은 immutable로써 list와는 지향하는 바가 다르고[각주:3]
Warnings
list를 만들었다면 이제 다양한 방법으로 사용하면 된다. 아래는 list의 모든 메소드에 대한 설명과 예시이다. 하지만 그 전에, 몇가지 주의사항을 꼭 숙지하고 가자. 물론 한시가 급하다면 생략해도 좋다. 책임은 못진다
대다수의 list 메소드들은 리턴값이 None이다. 다른말로하면 새로운 list가 생성되지 않고, 해당 list 오브젝트가 변하게 되는데 이렇게 in-place로 변할 수 있는 것들을 mutable 이라고 생각하면 된다.
old_list = [1,2,3]
new_list = old_list.append(4)
위와 같이, old_list에 append를 한 값을 new_list로 받고, new_list가 아무것도 안나온다고 하는 경우가 종종 있는데, old_list.append는 None를 리턴 함으로 new_list = None이 된 것. 꼭 주의하자!
list 뿐만 아니라, 파이썬에서 전반적으로 혼용되는 문법인데, 이미 생성된 list를 다시 다른 변수로 선언하면, 새로운 list가 생기는게 아니라, 똑같은 오브젝트를 다른이름으로 바라보게 된다. 말이 아리까리한데 예시와 함께 알아보자
[List] 파이썬 List 완전 정복 - 기초편
공식문서(영문)
먼저
list
를 만드는 방법에는 여러가지가 존재하는데:꺿쇠괄호(...?) 만 가지고 빈 리스트 생성 :
[]
꺿쇠괄호로 오브젝트 또는 콤마로 구분된 여러 오브젝트들을
둘러싸서 리스트 생성:
[1]
또는[1,2,3]
List Comprehension[각주:1] 으로 생성:
[x for x in iterable]
생성자 (Constructor)를 통해 생성:
list()
또는list(iterable)
이 중 생성자를 통한
list
생성은 초보자에겐 그닥 추천하고 싶지 않은데,iterable
에 대한 개념이 제대로 잡히지 않은 상태에서list('abc')
[각주:2]와 같이 꺿쇠괄호와 비슷한 문법으로list
를 생성해서 기대와는 전혀다른 결과가 나온다거나 할 수 있으므로 주의하자.아마 파이썬을 사용하다보면 가장 많이 사용할 기능이 아닐까 싶다. 가장 논리적이고 인풋값을 그나마 가장 그대로 저장하기 때문이라고 생각된다.
set
은 중복값을 날려버리고,dict
는 항상key
와value
가 있는 상황은 아니고,tuple
은immutable
로써list
와는 지향하는 바가 다르고[각주:3]Warnings
list
를 만들었다면 이제 다양한 방법으로 사용하면 된다. 아래는list
의 모든 메소드에 대한 설명과 예시이다. 하지만 그 전에, 몇가지 주의사항을 꼭 숙지하고 가자. 물론 한시가 급하다면 생략해도 좋다.책임은 못진다대다수의
list
메소드들은 리턴값이None
이다. 다른말로하면 새로운list
가 생성되지 않고, 해당list
오브젝트가 변하게 되는데 이렇게 in-place로 변할 수 있는 것들을mutable
이라고 생각하면 된다.위와 같이,
old_list
에append
를 한 값을new_list
로 받고,new_list
가 아무것도 안나온다고 하는 경우가 종종 있는데,old_list.append
는None
를 리턴 함으로new_list = None
이 된 것. 꼭 주의하자!list
뿐만 아니라, 파이썬에서 전반적으로 혼용되는 문법인데, 이미 생성된list
를 다시 다른 변수로 선언하면, 새로운list
가 생기는게 아니라, 똑같은 오브젝트를 다른이름으로 바라보게 된다. 말이 아리까리한데 예시와 함께 알아보자이 경우
my_list1
과my_list2
라는 2개의 리스트가 생겼다고 착각할 수 있는데, 실제로는my_list1
이나my_list2
나 모두 같은 오브젝트를 바라보고 있으므로, 아래와 같이 둘 중 하나를 바꾸면 둘 모두 바뀌게 된다!my_list1
만 수정을 했는데my_list2
도 같이 바뀌는 경우를 볼 수 있다. 변수를 변수로 선언하는게 좋은 습관이 아니라는 좋은 예시다. 만약 그럼에도 불가피하게 변수를 사용해야 한다면,list.copy
를 애용하자.이상
list
를 사용하면서 주의해야 할 점을 알아봤는데, 사실 이건list
만의 주의사항이 아닌, 전반적으로 파이썬 사용시에 주의사항이라고 할 수 있다. 그러니 첫째도 조심, 둘째도 조심하자.'Python' 카테고리의 다른 글