[파이썬] 파이썬 2와 파이썬 3의 리스트 동작 차이
리스트 생성
파이썬 2에서는 리스트를 생성할 때 [ ]
를 사용합니다.
my_list = [1, 2, 3, 4, 5]
파이썬 3에서는 동일한 방법으로 리스트를 생성할 수 있지만, list()
함수를 사용하는 것도 가능합니다.
my_list = list([1, 2, 3, 4, 5])
range 함수
파이썬 2에서 range()
함수는 실제로 리스트를 반환합니다.
my_range = range(5)
print(my_range) # [0, 1, 2, 3, 4]
파이썬 3에서 range()
함수는 이터레이터(iterator)를 반환합니다. 이는 리스트와 비슷하지만 실제 값을 가지지 않습니다.
my_range = range(5)
print(my_range) # range(0, 5)
print(list(my_range)) # [0, 1, 2, 3, 4]
리스트 반복문
파이썬 2에서는 range()
함수로 생성한 리스트를 반복할 때 인덱스를 가져와야 합니다.
my_list = [1, 2, 3, 4, 5]
for i in range(len(my_list)):
print(my_list[i])
파이썬 3에서는 range()
함수를 사용하지 않고 바로 리스트를 반복할 수 있습니다.
my_list = [1, 2, 3, 4, 5]
for item in my_list:
print(item)
리스트 메서드
파이썬 2에서는 리스트에 대해 append()
, extend()
, insert()
등의 메서드를 사용할 수 있습니다.
my_list = [1, 2, 3]
my_list.append(4)
my_list.extend([5, 6])
my_list.insert(0, 0)
print(my_list) # [0, 1, 2, 3, 4, 5, 6]
파이썬 3에서도 동일한 메서드들을 사용할 수 있지만, 추가로 remove()
, clear()
등의 메서드가 추가되었습니다.
my_list = [1, 2, 3]
my_list.append(4)
my_list.extend([5, 6])
my_list.insert(0, 0)
my_list.remove(3)
my_list.clear()
print(my_list) # []
이러한 차이점들을 고려하여 파이썬 2와 파이썬 3에서 리스트를 다룰 때 적절한 코드를 작성할 수 있습니다. 파이썬 3의 리스트 동작에 익숙해지면 향후 버전 업데이트 및 호환성 문제에서 이점을 얻을 수 있습니다.