Data/Python

[Python] chapter 05. 컬렉션으로 데이터 모으고 정리하기 _시퀀스(리스트, 튜플, 문자열)

bce_xopowo 2022. 10. 1. 10:25

컬렉션 : 데이터 모으고 정리하기

-데이터의 양이 많고, 집합의 성격을 갖는 데이터는 '컬렉션'을 활용해야 한다.
(도서관에서 책에 기준에 따라 분류하고 번호를 붙이는 것과 같음)
ex) 연락처(이름, 전화번호)

*컬렉션

  1. 시퀀스
  2. 매핑
  3. 집합

시퀀스

-데이터에 순서를 붙여 나열한 것
-파이썬은 리스트, 튜플, 레인지, 문자열 등 여러가지 시퀀스 컬렉션을 제공

1. 리스트

  • [ ] 대괄호를 활용하여 표현
  • 수정이 가능한 시퀀스


*리스트 시퀀스에서 많이 활용되는 메서드
-소개되는 메서드는 수정하는 메서드임, 그러므로 튜플 등 불변 시퀀스에서 적용이 불가

-extend() 대신 += 으로 연산해도 됨.

[실무] 리스트로 연락처 관리하기

-위치찾는 연산이 '0'을 찾는 것이 아니라, 0위치에 있는 요소를 찾아오는 것 이라는 점.

2. 튜플

  • () 괄호를 활용하여 표현하고,다양한 데이터를 담을 수 있고 리스트와 비슷
  • 내용을 변경할 수 없는 시퀀스.
  • 리스트와 비슷하게 대부분의 연산을 활용가능하다 (※시퀀스를 []가 아닌, ()로 해야한다는 점 기억하자)
  • 수정을 하는 연산은 불가 ex) remove, 요소 대입 등 불가
  • 이어붙이는 연산은 가능하다

 

 

3. 레인지

  • 수열의 범위가 넓은 요소를 입력해야 하는 경우 실수할 위험과 불편이 있다.
  • 이 경우 레인지를 활용하면 등차수열을 간단하게 표현할 수 있다
  •  
  • range 만으로 그 요소를 출력할 수 없으며 list나 turple을 활용해야 출력이 된다.
  • 즉, range자체는 데이터를 가지고 있지 않다는 것이기에 요소 수정은 불가하다
  • 요소를 수정하고 싶다면, list로 변환 후 수정하면 된다.

4. 문자열

  • 개별 문자만을 요소로 가진다.
  • 시퀀스 연산은 가능하지만, 불변 데이터이기에 수정은 불가하다.
  • 문자열은 리스트나 튜플로 변환할 수 있다

*join 매서드

 


시퀀스 연산

-리스트 시퀀스로 연습을 했으나,
리스트, 튜플, 레인지, 문자열 등 모든 시퀀스에 해당하는 연산이다.

  • 소속 검사하기 (in, not in)
  • 길이세기 (len())
  • 연결과 반복 (+,*)
  • 인덱싱 : 특정 위치 가리키기 (함수[ ])

  • 슬라이싱
함수[2:6] 2위치에서 6위치까지
함수[:3] 3위치 미만
함수[5:] 5위치 이상
함수[:] 전체 범위 모두
  • 간격을 지정하여 슬라이싱하기
    -[::-1] : 뒤에서부터 지정하기

  • 범위 지정하여 수정하기

 

  • 시퀀스 복제

시퀀스 복제 사본 변경시 원본 변경 안됨
대입 사본 변경시 원본 변경

-복제와 대입은 전혀 다른 개념이니 유념하기!