[파이썬] 파이썬 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의 리스트 동작에 익숙해지면 향후 버전 업데이트 및 호환성 문제에서 이점을 얻을 수 있습니다.