Python/Python 중급

Python 파이썬 List, list(), 리스트 활용 중급

독학코딩 2022. 2. 28. 20:29
반응형

안녕하세요 독학코딩입니다. 오늘은 파이썬의 리스트 데이터 타입을 다루는 방법을 조금 더 깊게 배워보겠습니다. 파이썬 리스트의 기초에 대해서 모르시는 분이 있으시다면 아래의 글 참고해주시기 바랍니다.

 

 

Python List, list(), 리스트 데이터 타입

안녕하세요 독학코딩입니다. 오늘은 리스트 데이터 타입에 대해서 배워보겠습니다. 리스트는 말 그대로 목록, 묶음입니다. 즉, str 혹은 int를 목록을 묶어서 관리하기 편하게 하기 위해 사용되는

stcodelab.com

 

 

 

Python 리스트 extend()

파이썬 리스트의 extend()는 리스트와 리스트를 합칠때 사용하면 유용한 기능입니다. 보통 리스트를 다른 리스트를 더할 때는 listA+listB를 하거나 리스트를 for문으로 돌려서 일일히 append 하는 방식이 있습니다. 다만 앞의 경우 새로운 변수를 지정해주어야 하고, 뒤의 경우는 코드를 쓸데 없이 많이 써야 합니다.

간편하게 리스트에 리스트를 더할 때는 listA.extend(listB)를 하시면 listA에 listB가 더해집니다.

listA = [1, 2, 3, 4]
listB = [4, 5, 6]
listA = listA + listB
print(listA)

listA = [1, 2, 3, 4]
listB = [4, 5, 6]
for i in listB:
    listA.append(i)
print(listA)

listA = [1, 2, 3, 4]
listB = [4, 5, 6]
listA.extend(listB)
print(listA)

항상 말씀드리지만 어떤 방식을 사용하시던 본인이 편한대로 하시면 됩니다. 다만, extend()를 사용하실때 주의하실 점이 있습니다.

listA = [1, 2, 3, 4]
strA = "Python"
listA.extend(strA)
print(listA)

위와 같이 리스트에 스트링을 추가할 때는 extend()를 사용하시면 안됩니다. 파이썬에서 str은 문자'열'이기 때문에 extend()를 사용하게 되면 문자 한개한개를 리스트에 추가하게 됩니다.

 

 

Python 리스트 insert()
파이썬에서 insert()는 특정 위치에 항목을 추가할 때 사용됩니다. listA.insert(A, B)와 같이 사용되는데 여기서 A는 리스트에 추가할 위치, B는 추가할 항목입니다.

listA = [1, 2, 3, 4]
listA.insert(2, "new")
print(listA)

리스트는 0번째, 1번째, 2번째 이런식으로 센다는거 잘 아시죠? 유의해서 사용하셔야 합니다.

 

 

Python 리스트 remove()
파이썬에서 remove는 리스트에서 특정 항목을 삭제할 때 사용합니다. del listA[0]와 다른 점은 del는 인덱스를 지정하여 리스트 내의 항목을 삭제한면, remove는 항목 자체를 지정하여 삭제할 수 있는 것입니다.

listA = [1, 2, 3, 4]
listA.remove(2)
print(listA)

listA = [1, 2, 3, 4]
del listA[2]
print(listA)

remove와 del를 비교하면서 익히시는게 좋습니다. 또한 만약 remove(A)에서 A가 리스트내에 없다면 ValueError를 일으킵니다.

listA = [1, 2, 3, 4]
listA.remove(5)
print(listA)

## ValueError: list.remove(x): x not in list

 

 

Python 리스트 pop([])
파이썬에서 pop은 특정 항목을 return하고 그 항목을 리스트에서 삭제하는 기능입니다. 즉, 삭제와 동시에 삭제된 항목을 필요할 때 많이 사용되는 기능입니다.

listA = [1, 2, 3, 4]
poped = listA.pop()
print(listA)
print(poped)

위와 같이 하면 listA의 마지막 항목을 poped로 보내고 listA 자체에서는 삭제하게 됩니다. 특정 항목을 골라서 반환하는 것도 가능합니다.

listA = [1, 2, 3, 4]
poped = listA.pop(1)
print(listA)
print(poped)

pop(A)에서 A로 리스트의 특정 인덱스을 지정할 수 있습니다. 물론 del로도 구현은 가능한 기능입니다.

listA = [1, 2, 3, 4]
poped = listA[1]
del listA[1]
print(listA)
print(poped)

굳이 이렇게 할 필요는 없겠죠?

 

 

Python 리스트 clear()
파이썬에서 clear()는 말 그대로 리스트를 비우는 기능입니다. 기능적으로는 del listA[:]와 같습니다.

listA = [1, 2, 3, 4]
listA.clear()
print(listA)

listA = [1, 2, 3, 4]
del listA[:]
print(listA)

 

 

Python 리스트 count()
파이썬에서 count() 특정 항목이 리스트내에 몇개가 있는지 세는 기능입니다.

listA = [1, 2, 3, 4, 1, 2, 1]
how_many = listA.count(1)
print(how_many)

 

 

Python 리스트 sort()
파이썬에서 sort는 리스트의 항목을 정렬하는 기능입니다. 기본적으로는 오름차순으로 정렬되고, key를 설정하는 방법에 따라서 정렬 방법을 설정할 수 있습니다.

listA = [1, 2, 3, 4, 1, 2, 1]
listA.sort()
print(listA)

listA = [1, 2, 3, 4, 1, 2, 1]
listA.sort(reverse=True)
print(listA)

listA = ["A", "a", "B", "c", "abc", "ab"]
listA.sort(key=str.lower)
print(listA)

listA = ["A", "a", "B", "c", "abc", "ab"]
listA.sort(key=str.upper)
print(listA)

listA = ["A", "a", "B", "c", "abc", "ab"]
listA.sort(key=len)
print(listA)

위와 같은 예시가 가장 자주 사용되는 경우입니다. 더 많은 key와 lambda를 같이 사용하는 방식도 있는데 그건 다른 포스트에서 다루도록 하겠습니다.

 

 

Python 리스트 reverse()
파이썬에서 reverse는 리스트를 뒤집는 간단한 기능입니다. listA.sort(reverse=True)와는 완전히 다른 기능입니다. 비교해서 보시는게 좋습니다.

listA = [1, 2, 3, 4, 1, 2]
listA.reverse()
print(listA)

listA = [1, 2, 3, 4, 1, 2]
listA.sort(reverse=True)
print(listA)
반응형