본문 바로가기
프로그래밍 언어/파이썬

6.시퀀스

by Jinger 2023. 2. 21.

서론

    시퀀스(squence)란  문자열과 같이 연속적으로 이어진 자료형을 말한다. 우리가 데이터를 저장할 때 주로 이 시퀀스 자료를 이용해 관리를 하기에 중요하다. 시퀀스에 리스트, 딕셔너리, 튜플, 문자열, byte, bytearry 들이 있다. byte, bytearry는 사용을 잘 안 하기에 생략한다.


리스트

    리스트는 인덱스를 기반으로 값을 저장하는 자료형이다. 리스트 선언하는 방법은 "리스트 변수명 = [요소,요소,요소,...]"로 "[]" 대괄호 안에 요소를 넣는다. 이때 요소는 자료형의 제한이 없다. 즉, 아래 예시와 같이 정수, 실수, 문자열, 불, 리스트까지 넣을 수 있다.

관련 함수(튜플을 제외하고 대체로 다른 시퀀스에 적용 가능)

    리스트 변경하는 방법은 리스트에 직접 대입연산자를 사용하면 된다. 출력할 때 리스트 자체가 출력이 되는 데, 거슬려 없애버리고 싶다면 앞에 "*"을 붙이면 된다.

   리스트에 요소를 추가하는 함수로 append()와 insert()가 있다. append() 함수 사용방법은 "리스트명.append(요소)"로 리스트에 마지막에 요소를 추가하는 함수이다. insert() 함수 사용방법은 "리스트명.insert(인덱스,요소)"로 리스트 인덱스 위치에 요소를 넣는 함수이다.

    리스트에 요소를 삭제하는 키워드로 del, 함수로 pop(), remove(), clear()가 있다. del 키워드 사용방법은 "del 리스트명[인덱스]"로 제거할 위치에 있는 요소를 제거한다. pop() 함수 사용방법은 "리스트명.pop(인덱스)"로 제거할 위치에 있는 요소를 제거한다. remove() 함수 사용방법은 "리스트명.remove(값)"으로 값을 지정하여 제거한다. clear() 함수 사용방법은 "리스트명. clear()"로 리스트 내부에 있는 모든 요소를 제거한다. 단, 리스트는 남는다.

    리스트와 리스트를 비교연산자를 통해 비교할 수 있다. 단, 리스트 비교하기 위해 동일한 자료형의 요소들을 가지고 있어야 한다. 리스트는 처음부터 순차적으로 비교해야 한다.

    슬라이싱도 지원이 된다.

선언 방법 활용

   자주 사용되는 리스트 선언 방법들이다.

복사

    깊은 복사는 말 그대로 복사를 해서 각각 독립적인 리스트가 되는 것이고, 얕은 복사는 복사는 했지만 얕게 해서 겉에만 복사된 느낌이고 실제로는 같은 리스트를 가리키고 있는 것을 말한다. 즉, 리스트 a를 복사한 b가 있고, b의 값을 변경했을 때, a가 바뀌면 얕은 복사, a가 안 바뀌면 깊은 복사이다.


딕셔너리

    딕셔너리는 리스트와 다르게, 인덱스가 아니라 키를 이용하여 값을 저장하는 자료형이다. 딕셔너리 선언하는 방법은 "딕셔너리 = {키:값, 키:값,...}"로 {} 중괄호 안에 키와 값을 함께 저장하는 방법이다.

    딕셔너리에서 새로운 요소를 추가하는 방법은 새로운 키와 함께 대입연산자로 새로운 값을 넣으면 된다. 딕셔너리에서 요소를 삭제하는 키워드는 del을 사용하면 된다.

관련함수

    enumerate() 함수는 순서가 있는 자료형(리스트, 튜플, 딕셔너리)을 입력받아 인덱스 값을 포함하는 enumerate 객체를 돌려준다. enmerate() 함수에 시퀀스 외에 "start = {int}"를 넣으면 인덱스 시작 값이 달라진다.

    items()함수는 딕셔너리의 키와 값을 동시에 얻고 싶을 때 사용한다.

    get() 함수는 딕셔너리의 값을 가져오거나 선언함과 동시에 지정해 줄 수 있다.


튜플

     튜플은 인덱스 기반으로 고정된 값을 저장하는 자료형이다. 튜플은 리스트와 비슷한 자료형이지만, 차이점으로 결정된 요소를 바꿀 수 없다. 이를 사용하는 이유는 메모리 용량을 아끼고 퍼포먼스를 향상시키는 데 도움이 되기 때문이다. 튜플 사용방법은 "튜플명=(요소, 요소,...)"로 () 소괄호 안에 요소를 넣는 방법이다.

    주의할 점으로 (2023)과 (2023,)는 다른 자료형인 것을 알아야 한다. (2023)은 수학에서의 괄호와 같이 "()" 소괄호가 감싼 형태이고, (2023,)는 두 번째 요소가 없는 튜플이다.

Unpacking

    튜플은 소괄호를 생략할 수 있다. 전 변수와 입력문 시간에 아래 코드와 () 괄호만 없는 형태를 배웠을 것이다.  사실 그때 변수의 값이 바뀔 수 있었던 이유가 바로 이 튜플이라는 자료형 덕분이다. 패킹과 언패킹의 자세한 것은 함수 시간에 배워보기로 하자.


세트

     세트는 순서가 없고, 중복이 없는 자료형이다. 즉, 수학에서 집합과 유사한 특징을 가지며, 순서가 없기 때문에 인덱스를 가지고 세트 항목에 접근할 수 없다. 세트 사용방법은 "세트명 = {요소}"로 {} 중괄호 안에 요소를 넣는 방법이다.

     세트에 요소를 add() 함수를 통해 추가할 수 있다. add() 함수는 "add(요소)"의 형식으로 작동된다.

세트 연산자

연산자 의미 연산자 의미
< 부분 집합 == 같다
!= 다르다 | 합집합
& 교집합 - 차집합

정리

자료형 의미 가리키는 위치 선언 형식 사용 예
리스트 인덱스 기반으로 값을 저장 인덱스 list_a= [] list_a[1]
딕셔너리 키를 기반으로 값을 저장 dict_a={} dict_a["name"]
튜플 인덱스 기반으로 고정된 값을 저장 인덱스 tuple_a=() tuple_a[1]
세트 순서와 중복 없이 값을 저장   set_a={}  

 

기타 함수

     많이 사용되므로, 자연스럽게 외워지는 함수들이다.

• min(리스트명)     #리스트의 최솟값

• max(리스트명)    #리스트의 최댓값

• sum(리스트명)     #리스트의 합

• len(리스트명)     #리스트의 길이

• 리스트명.index(값)     #값의 인덱스는?

• 리스트명.count(값)     #값의 개수는?

• 리스트명 + 리스트 명      #리스트 합치기

• 리스트명 * 3     #리스트 3번 반복

• 리스트명.sort()     #리스트 정렬하기

• 리스트명.reverse()     #리스트 뒤집기

주섬주섬

    외부에서 자료를 가져오거나 스스로 많은 자료를 관리할 때 주로 리스트를 사용한다. 이때 파이썬에 특징과 다양한 함수들을 알면 코딩하기 편해질 것이다.

참고

 

3.변수와 입력문

서론 출력문은 사실 다른 모듈을 사용하거나 다른 방식으로 대체가 가능하다. 하지만, 변수와 입력문은 그렇지 않다. 특히, 변수는 어느 프로그래밍 언어에서든 자주 사용할 수밖에 없는 데, 파

jinger.tistory.com

 

반응형

'프로그래밍 언어 > 파이썬' 카테고리의 다른 글

8.모듈  (0) 2023.03.02
7.함수  (0) 2023.02.27
5.반복문  (0) 2023.02.20
4.조건문  (0) 2023.02.20
3.변수와 입력문  (0) 2023.02.18

댓글