오늘도 어김없이 찾아온 list 부수기 시간..!! 알고리즘을 풀어보며 느끼지만 기본이 중요하다고 다시 느꼈고 필요성을 느끼게 됐다 !! 오늘도 차근차근 쌓아보자
지난 글에서는 append method를 이용하여 list에 데이터를 추가해보았다. 오늘은 다른 방법인 + 에 대해 알아보자 !! (+로 추가하는 방법을 알면 append는 굳이 왜쓰나 라는 생각이 들었지만 곰곰히 생각해보니 list의 길이가 너무 길어짐과 동시에 추가적으로 뒤에 데이터를 넣어줘야하는 상황일때 쓰는게 아닐까.. 아님말고)
list1 = [1, 2, 3, 4] list2 = [5, 6, 7] list1 + list2 print(list1) [1, 2, 3, 4] list1 = list1 + list2 print(list1) [1, 2, 3, 4, 5, 6, 7]
위에 코드를 보면 알 수 있듯이 +를 사용해서 list를 합할 수 있다. 여기서 조심해야 할 점은 +를 사용하면 기존의 list가 수정되지 않고 새로운 list가 생성되기 때문에 저장하고자 하는 변수에 지정을 해줘야 한다는 것이다.
append와 +말고 insert를 사용해서 새로운 데이터를 추가 할 수 있다. 앞의 두가지 방식과 다른점은 원하는 위치에 삽입할 수 있다는 점이다.
위와 같은 방식으로 추가를 하게 되는데, 명실상부 최고의 게임 LOL의 챔피언 list로 예를 들어보겠다.
champ = ["가렌", "갈리오", "나미", "나서스"]
LOL에 등장하는 챔피언을 가나다순으로 list에 넣어줬다. LOL을 즐기는 유저들은 알 수도 있지만 "가렌"과 "갈리오" 사이에 갱플랭크가 빠진 것을 알 수 있다. 여기서 갱플랭크를 추가하고자 한다면
champ.insert(1, "갱플랭크") # ["가렌", "갈리오", "갱플랭크", "나미", "나서스"]
이런식으로 삽입하고자 하는 데이터의 index를 지정해주어 추가할 수 있다.
우리는 python에서 list의 일부분을 따로 copy할 수 있는데 이를 slicing이라고 한다.
이번에도 LOL 챔피언 리스트를 통해 살펴보자 !
champ = ["가렌", "갈리오", "갱플랭크", "나미", "나서스"]
위와 같은 list에서 갈리오와 갱플랭크만 따로 copy해서 sub_champ라는 list에 넣어주고 싶다면
sub_champ = champ[1:2] print(sub_champ) #["갈리오", "갱플랭크"] 출력
이런식으로 시작과 끝의 index를 설정해주면 된다.
list slicing의 문법을 자세히 살펴보면
의 순서로 진행하면 된다.
추가를 했으니 삭제하는 법을 알아보자. 이번에도 등장하는 챔피언들..
champ = ["가렌", "갈리오", "갱플랭크", "나미", "나서스"]
먼저 del을 사용해 갱플랭크를 지우고 싶다면
del champ[2]
이렇게 해당 요소의 index를 적어서 삭제 할 수 있다. 이렇게해서 삭제되면 해당 index는 바로 다음 순서인 나미로 채워지게 된다.
이번엔 remove를 이용해 갱플랭크를 지워보자 !
champ.remove("갱플랭크")
del과는 다르게 index 값이 아닌 삭제하고자 하는 데이터를 직접 입력함으로써 실행할 수 있다.