[제로베이스_데이터취업스쿨] 자료구조-Tuple

JuYi Jeong·2024년 2월 26일

-배열과 같이 여러개의 데이터를 나열한 자료구조. 리스트(List)와 비슷하지만 아이템 추가, 변경, 삭제가 불가하다.

-‘()’를 이용해서 선언하고, 데이터 구분은 ‘,’를 이용한다. (튜플 선언 시 괄효 생략이 가능하다.)
이때 숫자, 문자(열), 논리형 뿐 아니라 또 다른 컨테이너 자료형 데이터를 저장할 수 있다.

-튜플도 리스트와 마찬가지로 아이템에 자동으로 부여되는 인덱스가 있다.
(인덱스란, 아이템에 자동으로 부여되는 번호표로 가장 앞자리부터 순서대로 0부터 시작하여 부여된다.)

-리스트 길이 : 리스트에 저장된 아이템 개수를 뜻한다.
len()을 이용하면 리스트 길이를 알 수 있다.

-튜플 아이템 참조

  1. for i in range(len(datas)):
    print('i: {}'.format(i))

  2. for data in datas:
    print(data)

  3. n=0
    while n < len(datas):
    print(datas[n])
    n += 1

  4. n=0
    flag=True
    while flag:
    print(cars[n])
    n +=1
    if n == len(datas):
    flag = False

  5. n=0
    while True:
    print(datas[n]):
    n+=1
    if n == len(datas)
    break

-in, not in 키워드를 이용하면 아이템의 존재 유/무를 알 수 있다.
ex) searchName = input('학생 이름 입력: ')
if searchName in studentsTuple:
print('{}학생은 우리반 학생입니다.'.format(searchName))

-리스와 튜플을 자료형 변환이 가능하다.
ex) datas = tuple(datas), nums = list(nums)

-튜플 정렬
튜플은 수정이 불가하기 때문에 리스트로 변환 후 정렬
list로 자료형 변환 → sort() /sort(reverse=True):정렬 → tuple로 자료형 변환
sorted()함수를 이용하면 튜플도 정렬할 수 있지만 자료형으로 반환된다.

-두 개의 튜플을 결합할 순 있지만 extend()함수는 사용 불가

-리스트 슬라이싱
[n:m]을 이용하면 리스트에서 원하는 아이템만 뽑아낼 수 있다. 문자열도 가능하다.
ex)[2:4] →인덱스 2<=n<4에 해당하는 아이템을 뽑아낼 수 있다.
-슬라이싱 단계 설정
[n:-z] : index n부터 마지막 z개 제외한 위치까지 슬라이싱
[n:-m:z] : index n부터 마지막 z개 제외한 위치를 m간격으로 슬라이싱
[:-m:z] : 처음부터(index 0) 마지막 z개 제외한 위치를 m간격으로 슬라이싱
[::m] : 전체 리스트를 m간격으로 슬라이싱
-슬라이싱을 이용한 아이템 변경
튜플은 슬라이싱을 이용해서 아이템을 변경할 수 없다.
리스트에 튜플 아이템으로 변경 가능
-slice() 함수를 이용해서 아이템을 슬라이싱 할 수 있다.
ex) print('students: {}'.format(students[slice(n:m)]))

0개의 댓글