ㅅㅇ
python 프로그래밍 : 자료 구조_리스트 본문
_플레이데이터 빅데이터캠프 공부 내용
리스트란?
: 값을 순서대로 모아서 관리하는 구조
특징
- 각 원소들은 index를 가지며 index로 관리(조회, 변경)된다.
- 다른 데이터 타입의 값들을 모을 수 있다. (한 리스트에 정수, 문자열, bool, 다른 자료구조 까지)
list = [1,[1,2],(1,2),{2,3,4},{"사과":30}]
print(list)
# 실행 결과 [1, [1, 2], (1, 2), {2, 3, 4}, {'사과': 30}]
- 리스트의 원소들은 다른 값으로 바꿀 수 있다.
리스트 만들기
list1 = [1, 2, 3]
- 변수 = [값, 값, 값, 값 ...]
- 값들을 ,로 구분해서 넣는다.
- 값들의 타입이 같지 않아도 된다.
리스트 Indexing
- 양수 인덱스, 음수 인덱스
1) 원소 조회 : list[0]
- 없는 index 조회 시 IndexError 발생
2) 원소 변경 : list[0] = 20
리스트 Slicing
1) 원소 조회
- list[시작index : 끝index +1 : 간격]
- 입력한 끝 인덱스는 포함하지 않는다. 실제 출력 index는 -1 한칸 앞
ex)
list[1:10] # 1~9 인덱스 원소 조회
list[:5] # 시작 0~4 인덱스 원소 조회
list[5:] # 5~마지막 index 까지 원소 조회
list[::3] # 전체 구간에서 세 개 index씩 건너 뛰어 조회
2) 원소 변경
- list[1:5] = [0, 0, 100, 2] # 1~4 인덱스 원소 변경
- 원소 삭제 결과도 만들 수 있음.
list[ :5] = [] #0~4 index 원소 삭제
- 원소 삭제 : del list[]
del list[4]
연산자
1) 리스트 합치기 +
- result = 리스트 + 리스트 + ...
- 기존 리스트를 바꾸는 것이 아님.
2) 리스트 반복하기 *
- result = 리스트 * n
3) in, not in 연산자
- 어떤 값이 리스트의 원소에 있는지 여부를 반환
- 값 in 리스트
- 값 not in 리스트
중첩리스트
- 리스트의 원소로 리스트가 추가된 것
- 조회 list[ ][ ][ ] 가장 큰 범위 인덱스부터
list = [[1, 2, 3], [4, 5, [7, 8, 9]]]
# 양수 인덱스
print("8을 출력 :",list[1][2][1])
print("8, 9을 출력 :",list[1][2][1:3])
# 음수 인덱스
list = [[1, 2, 3], [4, 5, [7, 8, 9]]]
print("8을 출력 :",list[1][2][-2])
print("8, 9을 출력 :",list[1][2][-1:-3:-1])
리스트 대입
- 각 변수에 리스트의 원소들이 순서대로 들어간다.
- cf) 튜플 대입 a, b, c = 10, 20, 30 # 괄호 생략
- 변수 선언 대입할 때 굳이 리스트보단 튜플로 하면 된다.
- 리스트 대입은 함수 때 쓰인다고 하는데 추후 함수에서
a, b, c = [10, 20, 30]
print(a, type(a)) # 출력 10 int
list 주요 메소드
1. len(리스트) : 리스트의 원소 개수 반환
2. list.append(값) : 값을 마지막 원소로 추가
3. list.extend(리스트) : 인수로 받은 리스트의 원소들을 추가 (+연산효과)
- list + [1,2,3] 과 동일한데, 이것은 원본 리스트를 바꾸지 않는다.
- 이 메소드로 원소들을 추가하면 원본 리스브 자체가 바뀐다.
4. list.insert(index, 삽입할 값) : 값을 해당 index에 삽입한다.
5. list.sort() : 정렬
- list.sort() : 리스트 내 원소를 오름차순 정렬
- list.sort() : 리스트 내 원소를 내림차순 정렬
- 리스트 내 원소들의 타입이 같아야 한다.
- 원본 리스트 자체가 바뀐다.
list = [1,100,-1,0,8,800]
list.sort()
list # 오름차순
list.sort(reverse=True)
list # 내림차순
6. sorted(list) : 정렬
- 원본 리스트를 변경하지 않고 정렬한 새로운 리스트를 반환
- 원본은 그대로이다. l1 출력하면 기존대로 원본대로 출력됨.
- 정렬한 것을 쓰고 싶다면 새로운 변수에 대입.
l1 = [1, 2, 3, 10, 3, 4, 5]
sorted(l1) # 오름차순
sorted(l1, reverse=True) # 내림차순
x = sorted(l1)
print(l1) # [1, 2, 3, 10, 3, 4, 5] 원본 그대로.
print(x) # [1, 2, 3, 3, 4, 5, 10] 정렬됨.
6. list.index(값, 시작index, 끝index) : 값의 index 번호를 반환
- 찾기 시작할 index 지정가능
list = [1,2,3,True,"사과"]
list.index("사과") # 4 index
list = [2,3,True,"사과"]
list.index(1) # 2 index
list = [1,2,3,True,"사과"]
list.index(1) # 0 index
list.index(True) # 0 index
# 찾기 시작할 index 지정.
list = [1,2,3,True,"사과"]
list.index(1) # 0 index
list.index(1,1) # 3 index # index 1부터 조회
list.index(1,1,4) # 3 index # index1부터 3까지 조회
7. list.remove(삭제할 값) : 리스트에서 값과 일치하는 원소를 삭제
- 일치하는 것 중 첫번째 원소만 삭제한다.
- cf) 인덱스를 이용해 삭제 : del list[0]
8. list.pop([index]) : index의 값을 삭제하면서 반환
- 삭제되면 그 인덱스 빠진 자리 땡겨짐.
- index 생략 시 마지막 원소를 반환 삭제한다.
9. list.count(값) : 매개변수에 전달한 값의 개수를 반환
- 찾고자 하는 데이터의 개수가 궁금할 때
10. list.clear() : 모든 원소들을 한번에 제거
'AI_STUDY > Python' 카테고리의 다른 글
Python _DB : pymysql 을 이용해 mysql 연동 (0) | 2022.06.04 |
---|---|
아나콘다 가상환경 생성 및 활성화 (Python, Windows) & 패키지 pip 설치 (pandas jupyter matplotlib) (0) | 2022.06.03 |
python 프로그래밍 : 정규표현식 (0) | 2022.05.23 |
python 프로그래밍 : 텍스트 파일 입출력 (0) | 2022.05.19 |
python 프로그래밍 : 예외와 예외처리 (0) | 2022.05.18 |