-
python 리스트와 튜플ML&DL&AI/Python 2023. 6. 8. 16:54728x90
1. 리스트(list)
- 파이썬의 자료구조 형태 중 하나
- 순서가 있는 객체의 집합
- 기호는 대괄호([])로 작성되어지며, 리스트 내부의 값은 콤마(,)로 구분
- 많은 양의 데이터를 관리 할 때 사용 & 여러 개의 데이터를 하나로 묶어서 관리
- 복수개의 데이터 관리 용도
- 자료형의 구분 없이 하나로 묶어줄 수 있음.(배열과의 차이점)
- 인덱스 번호가 존재함
- 0번부터 순차적으로 번호가 부여됨
- 데이터의 방 번호
- 추가, 수정, 삭제 가능
- 리스트명 = [요소1, 요소2, 요소3, ... ]
a = [] b = [1,2,3] c = ['my','name','is','L'] d = [1,2,'My','name'] e = [1,2,['my','name']]
- 데이터 타입 확인 방법
s= "문자열" type(s)
str
- 서로 다른 자료형 묶기
list3 = ['커피',99,['파이썬',707]]
- 리스트 인덱싱
- 인덱싱 방법 : 리스트명[인덱스번호]
list3[2][0]
'파이썬'
- 리스트 슬라이싱
- 슬라이싱 방법 : 리스트명[시작인덱스 : 끝인덱스(포함x)]
num_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] print(num_list[4:7]) print(num_list[0:6]) print(num_list[6:]) print(num_list[:])
[4, 5, 6] [0, 1, 2, 3, 4, 5] [6, 7, 8, 9] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- 리스트 더하기
- 문자열 더하기와 같다 > 옆으로 붙여주기
- # 산술 연산 된 것이 아님
list4 = [1, 2, 3] list5 = [4, 5, 6] print(list4 + list5)
[1, 2, 3, 4, 5, 6]
- 리스트 더하기 (산술 연산 수행)
- 하나씩 인덱싱해서 정수끼리 연산해야 함
- 반복문을 활용하면 쉽게 가능!
print(list4[2] + list5[2])
9
2. 리스트 함수
리스트 값 추가 : apped() 함수
- 맨 뒤에 값을 추가
- 온점(.) : 접근 연산자
- 리스트명.apped(추가하고 싶은 값)
list6 = [0,1,2,3,4,5] list6
[0, 1, 2, 3, 4, 5]
- 가장 뒤에 데이터를 추가하고 싶다면?
list6.append(6) list6
[0, 1, 2, 3, 4, 5, 6]
- append() 함수를 활용하여 리스트 안에 리스트 추가 가능!
list6.append([1,2,3]) list6
[0, 1, 2, 3, 4, 5, 6, [1, 2, 3]]
- 빈리스트에 append()함수를 활용하여 새로운 값 추가
list1= [] list1.append(3) list1
[3]
리스트 값 추가 : insert()함수
- 인덱스 위치에 값 추가
- 리스트명.insert(인덱스번호, 추가하고 싶은 값)
list7 = ['a', 'b', 'c'] #내가 추가 하고싶은 인덱스 위치 list7.insert(0,'A') list7
['A', 'a', 'b', 'c']
리스트 값 수정
- 리스트명[수정하고 싶은 인덱스 번호] = 값
#list7 에서 'b'라는 무자를 'ㄱ'으로 수정 list7[2] = 'ㄱ' list7
['A', 'a', 'ㄱ', 'c']
리스트 값 삭제 : del 키워드, remove()함수
- 키워드 : 예약어
- del 리스트명.[인덱스번호]
- 리스트명.remove(삭제할 값)
- 차이점del 키워드 : 인덱스 번호를 통해서 삭제
remove() 함수 : 실제 값을 입력해서 삭제
#del 리스트명[인덱스번호] # list7 = ['A', 'a', 'ㄱ', 'c'] del list7[0] list7
['a', 'ㄱ', 'c']
# 리스트명.remove(값) # list6 = [0, 1, 2, 3, 4, 5, 6, [1, 2, 3]] list6.remove(1) list6
[0, 2, 3, 4, 5, 6, [1, 2, 3]]
- list[ ][ ]으로 제거가 될까?
- 실행 결과 list6[6][2] = 3이 제거 되었다.
list6.remove(list6[6][2]) list6
[0, 2, 4, 5, 6, [1, 2, 3]]
- 그렇다면 list[ ]은?
- 실행 결과 리스트가 제거가 되었다.
list6.remove(list6[5]) list6
[0, 2, 4, 5, 6]
2. 리스트 정렬
- sort() 함수 : 정렬
- 리스트명.sort()
- 기본값 : 오름차순(가, 나, 다 // a, b, c// 1, 2, 3 ...)
list1 = [2,45,2,12,400,12,66,89] list1.sort() list1
[2, 2, 12, 12, 45, 66, 89, 400]
- reverse() 함수 : 값들의 위치(인덱스)를 역순으로 뒤집어줌
- 리스트명.reverse()
list1.reverse() list1
[400, 89, 66, 45, 12, 12, 2, 2]
- sort( ) 다음에 reverse ( ) 역순으로 정렬이 됩니다.
- 그렇다면? sort ( )의 정보를 보면?
- reverse = false가 기본값이다. 반대로 True를 적용하면 내림차순으로 정렬이 된다.
Shift + TAB 누르면 정보를 볼수가 있다.
list1 = [2,12,2,12,66,45,400,89] list1.sort(reverse=True) list1
[400, 89, 66, 45, 12, 12, 2, 2]
기타 함수들
- index(값) : 데이터의 위치값을 알려줌
- pop() : 리스트의 가장 마지막 값을 출력 후 제거
- append()가 리스트 맨뒤에 값을 추가라면 pop()는 제거하는 기능
- len(리스트) : 리스트의 길이를 알려준다.
- 리스트 안에 요소가 몇개 들어있는지
- index() : 내가 원하는 데이터의 인덱스 위치를 알려줌
- 리스트명.index(값)
list8 =['봄', '여름', '가을', '겨울'] list8.index('가을')
2
- pop() : 리스트의 가장 마지막 값을 출력 후 제거
- 리스트명.pop()
list8.pop() # 어떤 것이 제거 되었는지 보여주기만 함
'가을'
- len() : 리스트 내 요소 개수 확인
- len(리스트명)
list9 = ['봄', '여름', '가을', '겨울',['벚꽃', '계곡'],['단풍','눈사람']] len(list9)
- 리스트 안의 리스트도 요소의 일부일 뿐이니 혼동하지 말기!
- 어려우면 자료형 자체로 세어보자
- str str str str list list
6
3. 튜플
- 파이썬의 자료구조 형태 중 하나
- 순서가 있는 객체의 집합
- 기호는 소괄호 ( ) 로 작성되어지며, 튜플의 내부 값은 콤마( , )로 구분
- 많은 양의 데이터를 관리 할때 사용 & 여러 개 데이터를 하나로 묶어서 관리
- 복수개의 데이터 관리 용도
- 자료형의 구분 없이 하나로 묶어 줄 수 있음.(배열과의 차이점)
- 인덱스 번호가 존재함
- 0번부터 순차적으로 번호가 부여
- 추가, 수정, 삭제 불가능
- 튜플 생성
- 튜플명 = (요소1, 요소2, 요소3 ... )
tuple1 = (1, 2, 3, ('AA','BB'), 4, 5, 6) tuple1
(1, 2, 3, ('AA', 'BB'), 4, 5, 6)
- 리스트와 튜플의 공통점과 차이점
- 공통점
- 타입과 상관 없이 복수개의 요소들을 가질 수 있다.
- 요소의 순서를 관리한다.
- 차이점
- 리스트는 가변적이며, 튜플은 불변적이다.
- 리스트는 요소가 몇 개 들어갈지 명확하지 않고 유동적일 경우에 사용한다.
- 튜플은 요소 개수를 사전에 정확히 알고 있고 변동이 없을 경우에 사용한다.
4. in, not in 키워드
- in : 찾고자 하는 값이 포함되어 있으면 Ture 출력
- not in : 찾고자 하는 값이 포함되어 있지 않으면 Ture 출력
728x90'ML&DL&AI > Python' 카테고리의 다른 글
Python 딕셔너리(dictionary) (0) 2023.06.13 python 반복문 (0) 2023.06.12 Python 조건문 (0) 2023.06.07 Python 연산자 (0) 2023.06.05 Python 변수&문자열, 주피터(Jupyter notebook) 단축키 (0) 2023.06.05