1. list() 함수
- list() 함수는 파이썬의 내장 함수이며, 주로 다른 iterable 객체를 리스트(list)로 변환할 때 사용한다.
1.1 함수 정의
list([iterable])
- 매개변수:
- iterable : 반복 가능한 객체 (string, tuple, set, dict, range, generator 등)
- 반환값:
- iterable의 요소들을 포함한 새로운 리스트 객체
- 생략 가능:
- iterable을 생략하면 빈 리스트 []를 반환한다.
1.2 주요 사용 예제
1.2.1 문자열 → 리스트
list("abc") # ['a', 'b', 'c']
- 각 문자 하나하나를 요소로 변환한다.
1.2.2 튜플 → 리스트
list((1, 2, 3)) # [1, 2, 3]
- 튜플을 리스트로 변환한다.
1.2.3 세트 → 리스트
list({3, 1, 2}) # [1, 2, 3] (순서는 정해지지 않음)
- 중복 없는 값을 리스트로 변환한다.
- 순서는 예측 불가하므로 정렬하려면 sorted()를 함께 사용할 수 있다.
1.2.4 딕셔너리 → 리스트
list({'a': 1, 'b': 2}) # ['a', 'b']
- 기본적으로 키 값만 리스트로 반환한다.
- 값을 원할 경우 dict.values()를 사용할 수 있다.
list({'a': 1, 'b': 2}.values()) # [1, 2]
list({'a': 1, 'b': 2}.items()) # [('a', 1), ('b', 2)]
1.2.5 range → 리스트
list(range(5)) # [0, 1, 2, 3, 4]
- range 객체를 실제 값으로 구성된 리스트로 변환한다.
1.2.6 제너레이터 → 리스트
gen = (x * 2 for x in range(3))
list(gen) # [0, 2, 4]
- lazy evaluation을 즉시 평가하여 리스트로 만든다.
1.3 주의 사항
- list()는 항상 새로운 리스트 객체를 반환하므로, 기존 데이터를 복사할 때도 사용할 수 있다.
- a = [1, 2, 3] b = list(a) # b는 a의 복사본 (얕은 복사)
- list()는 iterable만 허용한다. iterable이 아닌 값을 넣으면 TypeError가 발생한다.
- list(123) # TypeError: 'int' object is not iterable