파이썬은 변수를 선언할 때 자료형과 같이 선언하지 않지만, 파이썬에도 여러가지 자료형들이 있다.
Navi : [ 리스트 ], [ 튜플 ], [ 사전 ], [ 슬라이스연산 ], [ 문자열 ], [ 집합 ]
리스트( List )
리스트는 열거형 자료구조이며, 대괄호( [ ] )를 이용해 만들고 추가 및 삭제가 가능하다.
- 리스트선언
-
len(리스트)
열거형 데이터의 길이를 int형으로 반환
-
리스트.append(데이터)
리스트의 마지막인덱스에 해당 데이터추가
-
리스트.insert(인덱스, 데이터)
해당 인덱스에 데이터 삽입
-
리스트.remove(인덱스)
해당 인덱스 삭제
-
리스트.index(데이터)
해당 데이터가 있는 인덱스 반환
-
리스트.sort()
리스트를 파이썬이 알아서 순서에 맞게 정렬해준다.
-
리스트.pop()
가장 끝에 있는 데이터를 삭제 후 반환 ( 인덱스 입력도 가능 )
리스트 또한 더하거나 곱하여(문자열과 같은 방식) 새로운 리스트를 만들어 낼 수 있다.
튜플( Tuple )
튜플 또한 열거형 데이터로, 선언은 소괄호( () )를 사용한다. 또는 괄호 없이 선언도 가능
리스트와의 차이점은 튜플은 수정이 불가하다는 점이다. ( 추가는 가능 )
- 튜플 선언
-
len(튜플)
튜플 또한 열거형 데이터이므로 len함수 호출이 가능하다.
- 튜플도 마찬가지로 zoo[0] 등을 통해 접근 가능
- 빈 튜플과 한 개짜리 튜플
빈 튜플은 zoo=() 와 같이 생성할 수 있으며,
한 개 짜리 튜플을 선언할 때는 zoo( “monkey”, ) 와 같이 끝에 콤마(,)를 찍어야 한다.
한개의 데이터를 가지고 있는 튜플을 선언할 때 마지막 콤마를 찍어야 하는 이유는 형변환 문법과 동일하기 때문에 이를 구분하기 위하여 한개짜리 튜플은 마지막 콤마를 하나 더 찍어 주어야 한다.
사전( dictionary )
자바의 Map객체와 비슷하게 '키'와 '값'을 동시에 가질 수 있는 자료구조로 dict 클래스의 인스턴스/객체이다. 사전의 선언은 중괄호( {} )를 사용하며, 키와 값의 구분은 콜론(:)을 사용한다.
-
사전 선언
-
데이터 추출
리스트와 마찬가지로 대괄호([])를 이용하여 추출하지만, 사전은 인덱스 대신 키값을 넣어 해당 데이터를 추출해 낼 수 있다.
-
데이터 삽입
-
데이터 삭제
식별자의 삭제와 동일하다
-
사전 순회
사전을 for문에서 순회할 때 사전의 키값을 반환해준다.
따라서 해당 키값을 통해 사전의 데이터를 뽑아낼 수 있다.
- 또 다른 방법으로 .items()라는 dict_items데이터를 뽑아내 주는 함수를 사용하여 키와 값을 동시에 뽑아내며 순회할 수도 있다.
▶ 사전 관련 함수
-
.keys()
dict_keys라는 객체를 반환하는 함수로 사전의 키를 모두 반환, 파이썬 2버전에서는 리스트를 반환하지만, 3버전 이후부터는 dict_keys객체로 반환되며, 이는 for문등에서 쓰일 수 있다. ( dict_keys객체를 list로 받고 싶을 경우 'list( 변수.keys() )'로 반환하면 된다. ) -
.values()
dict_values라는 객체를 반환하는 함수, 사전의 value값을 모두 반환, 동작 구조는 keys()와 같다. -
.items()
dict_items라는 객체를 반환하는 함수, 사전의 key와 value를 모두 반환 리스트 안에 튜플 형식, 동작 구조는 keys()와 같다. -
.clear()
사전 초기화 -
.get(key)
사전에서 키에 대응하는 value값을 가져오는 함수로, [key]를 이용하여 뽑아낼 수 있지만 없는 데이터의 경우 에러가 발생한다.
하지만 .get(key)함수를 사용해서 불러올 시 해당 키가 없으면 None를 반환하여 에러를 막을 수 있다.
집합
정렬되지 않은 단순 객체의 묶음. 교집합과 합 집합을 얻어낼 수 있다.
- 집합 선언 :
-
- 교집합
- bri & bri2
문자열
파이썬의 모든 문자열은 str클래스의 객체이다.
-
- 문자열 선언
-
문자열.startswith("문자열")
문자열변수의 문자열이 해당 문자열로 시작되는지 여부를 True/False로 반환
-
'문자열' in 문자열변수
해당 문자열이 문자열변수 문자열 안에 포함되는지 여부를 True/False로 반환
-
'문자열'.find("문자열")
해당 문자열에서 매개 문자열이 시작되는 인덱스 위치를 반환, 만약 찾지 못한 경우 -1을 반환
-
문자열변수.join(문자열리스트)
해당 문자열 변수를 구분자로 문자열리스트를 결합하여 큰 문자열을 만들어 냄
슬라이스 연산 (서브스크립션 연산)
열거형( 리스트, 튜플, 문자열)에서만 사용 가능한 인덱싱 연산으로 일부분을 잘라내 부분 집합을 반환해주는 연산이다.
▶ 음수 인덱스
파이썬에서는 인덱스에 음수 또한 허용되는데, 인덱스가 음수인 경우 뒤에서부터 몇 번째 인지를 판단하여
만약 -1일 경우 (길이-1)의 인덱스와 동일한 역할을 한다.
ex ) list[-1] = list[len(list)-1]
=> 즉 list[-1]은 제일 마지막 인덱스
▶ 슬라이스 연산 사용법
열거형의 부분 집합을 추출하여 반환해준다. '열거형데이터[ index1 : index2 ]'의 문법으로 사용하며,
데이터[index1] ~ 데이터[index2-1]까지의 데이터를 반환해준다.
이는 복사본이 아니기 때문에 수정시 원본또한 수정되지만, 변수에 대입하여 사용하면 복사본이 된다.
-
- list[1:3]
- list[1] ~ list[2]
-
- list[[2: ]
- list[2] ~
-
- list[1:-1]
- list[1] ~ list[len(list)-2]
-
- list[ : ]
- list[0] ~
▶ 슬라이스 연산 세번째 인수
인덱스를 몇 칸씩 건너 띄며 반환할 것인지를 결정
-
- list[ : : 1]
- 디폴트가 1이므로, 한칸씩 반환하여 결국 모두 반환
-
- list[ : : 2]
- 한 칸을 건너뛰고 두 칸마다 한 칸씩 반환
-
- list[ : : -1]
- 마지막 인덱스부터 거꾸로 반환
▶ 참조값
파이썬에도 자바에서의 참조의 개념이 있기 때문에 객체변수를 단순히 ‘=’기호를 이용하여 대입하는 것은 같은 참조값을 가질 수 있기 때문에, 복사본이 필요할 경우 슬라이스 연산 등을 이용하도록 한다.
일반변수의 경우는 =를 이용하여 참조되지 않는다.
in / not in 연산자
열거형 데이터에서 데이터 포함여부를 확인할 수 있는 키워드로, 흐름제어문인 if, for문 등에서 자주 쓰인다.
ex ) “apple” in list
=> “apple” 라는 문자열이 list에 포함되어 있는지 True/False 반환