본문 바로가기

카테고리 없음

[Python]파이썬 리스트 값 추가/삭제/조회/정렬 기본

이번 포스팅은 리스트에 대한 내용이다. 많은 수의 값을 다뤄야 할 때, 각각의 변수에 저장하는 것보다 한꺼번에 모아서 관리하는 편이 더욱 간편하고 효율적으로 관리가 가능한데 이럴때 리스트를 사용하면 편리하다. 리스트 생성, 추가, 삭제, 조회등을 알아보자.


 1.리스트 생성

#리스트 생성
list = []
print(list)

list = [1,2,3]
print(list)

list = ['a','b','c']
print(list)

변수 = [값1,값2,...]

변수안에 대괄호[]를 사용해서 리스트를 정의할 수 있다.

 2.리스트 조회

#리스트 생성
list = [1,2,3,4,5]

#리스트 전체조회
print(list) #[1,2,3,4,5]

#리스트 선택조회(인덱싱)
print(list[2]) #3
print(list[-1]) #5

#리스트 구간조회(슬라이싱)
print(list[1:3]) #[2,3]
print(list[1:-2]) #[2,3]

 

선택 조회(인덱싱)일 경우, 변수명 옆에 꺼내고자 하는 값의 위치를 넣어준다. 리스트 값의 순서는 0부터 시작한다.

변수명[인덱스]

list[2]

 

리스트 값을 뒤에서부터 접근하고 싶을 경우 음수를 사용하는데 이때 순서는 -1부터 시작한다.

list[-1]

 

구간 조회(슬라이싱)일 경우, 콜론(:)을 사용하여 범위를 지정해준다. 양수와 음수를 혼용해서 사용 가능하다.

변수명[인덱스1 : 인덱스2](인덱스1부터 시작, 인덱스2 직전까지 선택)

list[1:-2]

 3.리스트 값 추가(append)

#리스트 생성
list = []
list2 = [1,2,3]

#리스트 값 추가
list.append('a')
list2.append(4)

#출력
print(list) #['a']
print(list2) #[1,2,3,4]

기존의 리스트에 값을 추가하고 싶을 때는 append() 함수를 사용하면 편리하다.

append() 함수는 리스트의 마지막 인덱스 뒤에 새로운 값을 추가해준다.

 4.리스트 값 제거(del)

#리스트 생성
list = [1,2,3]

#리스트 값 제거
del list[1]
print(list) #[1,3]

#리스트 값 제거2
del list[1:3]
print(list) #[1,5]

del을 사용해서 원하는 곳의 리스트 값을 제거할 수 있다. 인덱싱이나 슬라이싱 모두 적용 가능하다.

 5.리스트 값 정렬(sort, reverse)

#리스트 값 정렬(asc)
list = ['b','a','d','c']
list.sort()
print(list) #['a', 'b', 'c', 'd']

#리스트 값 정렬(desc)
list = ['b','a','d','c']
list.sort(reverse = True)
print(list) #['d', 'c', 'b', 'a']

#리스트 값 순서 뒤집기
#reverse는 절대 desc정렬이 아니다. 리스트 순서를 통째로 뒤바꾸는 함수이다.
list = ['b','a','d','c']
list.reverse()
print(list) #['c', 'd', 'a', 'b']

만약 list의 데이타는 그대로 놔두고 새로운 리스트에 정렬을 하고 싶다면 sortedreversed함수를 사용한다

#원본데이터 건들지 않고 정렬하기
test_list = [5,1,88,45,16]
list_sorted = sorted(test_list)
list_reversed = list(reversed(test_list))
list_sorted_reverse = list(reversed(sorted(test_list)))

print(test_list) #[5, 1, 88, 45, 16]
print(list_sorted) #[1, 5, 16, 45, 88]
print(list_reversed) #[16, 45, 88, 1, 5]
print(list_sorted_reverse) #[88, 45, 16, 5, 1]

#reversed를 사용할때는 다시 list로 형변환을 시켜줘야 제대로 출력이 된다.

 6.리스트 개수 세기(count, len)

#리스트 개수 세기 예제
test_list = ['가','나','다','가','라','마']

#리스트 총 Size
print(len(test_list)) #6

#리스트 안의 '가'의 개수
print(test_list.count('가')) #2

리스트의 총 길이를 구하고 싶을때는 len, 리스트 안의 특정 값의 개수를 알고 싶을때는 count를 사용한다.


위에 올라와있는 방법 말고도 같은 기능을 제공해주는 많은 함수들이 있지만 일단 여깄는 것들부터 익숙해지고 나중에 필요할때 찾아서 쓰면 되지 않을까 싶다.