Python 파이썬 List, list(), 리스트 활용 중급
안녕하세요 독학코딩입니다. 오늘은 파이썬의 리스트 데이터 타입을 다루는 방법을 조금 더 깊게 배워보겠습니다. 파이썬 리스트의 기초에 대해서 모르시는 분이 있으시다면 아래의 글 참고해주시기 바랍니다.
- Python 리스트 extend()
- Python 리스트 insert()
- Python 리스트 remove()
- Python 리스트 pop([])
- Python 리스트 clear()
- Python 리스트 count()
- Python 리스트 sort()
- Python 리스트 reverse()
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)