기본자료형 vs 컬렉션 자료형
기본 자료형(문자열, 숫자, bool)등은 특정 하나의 값만 사용.
컬렉션은 여러개의 값을 저장 할 수 있다. 컬렉션 자료형의 특징에 따라 리스트, 튜플, 셋, 딕셔너리로 구분.
List [ ]
- 컬렉션 자료형에서 가장 많이 쓰이는 자료형태로; 딘순자료형이 아닌 자료구조의 형태를 취함
- 리스트는 가변 가능함 (=동적이다) ; 인덱스와 메소드를 활용, 값의 수정 및 정렬이 쉽다.
cheeses = ['Cheddar', 'Edam', 'Gouda'] numbers = [123, 456] empty = [] print(cheeses, numbers, empty) # ['Cheddar', 'Edam', 'Gouda'] [123, 456] [] print('numbers[1] :',numbers[1]) # numbers[1] : 456 print('numbers[0] :',numbers[0]) # numbers[0] : 123 print('numbers :',numbers) # numbers : [123, 456] print(cheeses[0]) # Cheddar numbers[1] # 456 numbers[1] = 789 ## numbers 첫번째 자리 789로 수정 print(numbers) #[123, 789]
- 프로그래밍에서 기본적으로 사용되는 배열의 기능(값을 여러개 저장할 수 있는 기능)
- 탐색, 삽입, 삭제와 같은 연산에 대한 메소드 갖고 있음 -- 튜플 ()과의 차이
- 인덱스를 기반으로 값을 저장하고 수정 -- 딕셔너리 {}와의 차이
- 하나의 리스트에 문자열, 숫자 타입 뿐만 아니라 리스트[]를 넣을수 있다.(다차원 리스트가 됨; 게임개발, 대규모 머신러닝 알고리즘에서 사용.)
- 리스트[ ] 메소드 활용
### append() --> 리스트의 마지막에 새로운 값 append arr = ['math', 'biology', 1989, 2019] arr.append(2021) arr # ['math', 'biology', 1989, 2019, 2021] ### insert() --> 리스트의 중간에 인덱스와 값을 지정하여 값을 insert 삽입 arr_in = ['math', 'biology', 1989, 2019] arr_in.insert(1,2021) ## index = 1, value=2021 arr_in # ['math', 2021, 'biology', 1989, 2019] ### del --> 제거할 항목의 인덱스에 따라 delete; 삭제된 값은 확인할 수 없음 arr_del = [1, 2, 3, 4, 5] del arr_del[0] ## index=0 의 자리 자료를 del arr_del # [2, 3, 4, 5] ### remove --> 삭제할 value를 알고 있어야함, 중복값의 경우 index의 순서에 따라 앞에 있는 값만 삭제 arr = [1, 2, 3, 4, 5,1,1,1] arr.remove(2) ## value=2 삭제 # [1, 3, 4, 5,1,1,1] arr.remove(1) ## value=1 삭제; 중복값이기에 처음나온 1이 삭제됨 print(arr) # [3, 4, 5,1,1,1] ### pop() --> 리스트의 특정위치 value만 축출 저장; (pop 활용예시 : 웹에서 로그아웃한 특정 사용자를 빼놨다가, 재접속 및 로그인을 위해서 사용자 목록에 다시 넣음) arr_pop = [1, 2, 3, 4, 5,8,9,10] p_1 = arr_pop.pop() ## 리스트 마지막 value 축출 저장 print(arr_pop) # [1, 2, 3, 4, 5, 8, 9] print(p_1) # 10 p_2 = arr_pop.pop(1) ## 1번째 자리의 value 축출 저장 print(arr_pop) # [1, 3, 4, 5, 8, 9] print(p_2) # 2 ### extent() --> 리스트끼리 합치기 arr_one = [1, 2, 3, 4, 5] arr_two = [1, 2, 3] arr_one.extend(arr_two) ## arr_one을 arr_two와 붙이기 arr_one #[1, 2, 3, 4, 5, 1, 2, 3] ### sum() --> 리스트의 모든 수를 sum arr = [1, 2, 3, 4, 5] sum(arr) # 15 ### count() --> 리스트안에 특정value 갯수 count arr = [1, 1, 1, 2, 3] print(arr.count(1)) # 3 print(arr.count(2)) # 1 print(arr.count(3)) # 1 ### len() --> 리스트의 length 확인 arr = [1, 2, 3, 4, 5, 'f'] len(arr) # 6 ### index() --> 리스트의 범위에서 특정 value의 index 추출 arr_two = ['a', 'b', 'c', 'd', 'e', 'a', 'b'] print(arr_two.index('a', 1)) ## 1번 index부터 시작해서 'a'가 나오는 index 추출 # 5 print(arr_two.index('a', 1, 5)) ## 1번 index부터 시작해 4번째까지중 'a'가 나오는 index 추출 # ValueError: 'a' is not in list ## 1~4사이에는 'a'가 없어서 error가 도출됨 # print(arr_two.index('b', 1, 3)) # 1 ### min() --> 최소값 추출 arr = [4, 3, 2.5, 7, 0.7, 9] min(arr) # 0.7 ### sort() --> 리스트 내부의 value자체의 순서를 정렬 저장 // sorted() --> 리스트 내부 순서 유지, 정렬된 순서로 출력만 함. arr = [4, 3, 2.5, 7, 0.7, 9] arr.sort(reverse=True) ## 정렬 함수는 리스트 내부 내림차순 정렬의 한다. print(arr) # [9, 7, 4, 3, 2.5, 0.7] arr = [4, 3, 0.5, 7, 0.7, 9] print(sorted(arr, reverse=True)) # [9, 7, 4, 3, 0.7, 0.5] arr # [4, 3, 0.5, 7, 0.7, 9]
- 리스트 슬라이싱
# 리스트 예시 # s = [11,22,33,44,55] # print(s[0:4]) #0인덱스 부터 4 전까지지 # print(s[0:2]) #인덱스 1부터 2전까지 # print(s[0:5:2]) #인덱스 0에서 인덱스 5전까지 2의 간격으로로 # print(s[-3:-1]) #뒤에서 3번째부터 뒤에셔 1번째 전까지 # print(s[3:1]) #반대방향으로는 안됨
튜플 ( )
- immutable : 변경 불가능
- 튜플은 특정값과 인덱스에 대한 값 변경 불가능. --> 리스트와의 차이점
- 튜플 ( ) 메소드 활용
## count() --> 튜플 내 해당 숫자가 몇 개인지 세는 기능 my_tuple = (1, 3, 4, 5, 2, 3, 4, 6, 7, 2) ## 튜플 지정 x = my_tuple.count(4) ## 4의 갯수를 세어주는 메소드 지정 x # 2 ## index() --> 특정 값의 인덱스(순서)를 알려주는 기능 my_tuple = (1, 3, 7, 2, 7, 5, 3, 2, 9, 3) ## 튜플 지정 my_tuple.index(7) # 2
딕셔너리 { }
- key를 기반으로 값을 저장
- 내부적으로 해시테이블로 구현
- 딕셔너리 선언형식
# 딕셔너리 선언 형식 eng_sp = dict() # {} eng_sp['one'] = 'uno' #{one:uno} eng_sp = {'one': 'uno', 'two': 'dos', 'three': 'tres'}
- dict{} 메소드 활용
## clear() --> 딕셔너리 내부 값 모두 삭제 car = {"brand": "Honda","model": "CR-V","year": 2002} car.clear() # {} ## copy() --> 딕셔너리 copy car = {"brand": "Honda","model": "CR-V","year": 2002} carbon_copy = car.copy() print(carbon_copy) # {"brand": "Honda","model": "CR-V","year": 2002} ## fromkeys() --> key값과 value 지정 x = ('key1', 'key2', 'key3') y = 1 new_dict = dict.fromkeys(x, y) # {'key1': 1, 'key2': 1, 'key3': 1} dict_without_values = dict.fromkeys(x) # {'key1': None, 'key2': None, 'key3': None} ## get() --> key 값으로 value 도출 car = {"brand": "Honda",model": "CR-V","year": 2002} car.get("model") # 'CR-V' ## items() --> 딕셔너리 key값과 value값을 리스트 속의 튜츨로 추출 car = {"brand": "Honda","model": "CR-V","year": 2002} car.items() # dict_items([('brand', 'Honda'), ('model', 'CR-V'), ('year', 2002)]) ## keys() car.keys() # dict_keys(['brand', 'model', 'year']) ## pop() car.pop("model") # 'CR-V' ## popitem()
전체 클래스를 확인하는 메소드 실행 방식
'Computer Science > 파이썬' 카테고리의 다른 글
[Python] 파이썬에서 Github 사용하기 (ft.잔디농사를하자git commit) (0) | 2021.07.29 |
---|---|
[Python] Conda 가상환경만들기 (+ 패키지 확인하기 저장하기 설치하기 requirements.txt) (0) | 2021.07.29 |
[데이터전처리] tidy-wide tabular data -변환-> Pivot Table, Melt (0) | 2021.06.27 |
[데이터 전처리] Pandas isin (0) | 2021.06.21 |
[통계/python] 가설검정3 - ANOVA test (0) | 2021.06.21 |