ABOUT ME

  • 튜플(Tuple)
    Language/자료구조 2024. 5. 23. 17:00

    : 리스트(List) 와 비슷하지만 아이템 변경(수정,삭제)이 불가하다.

     

    튜플선언

    • '()' 를 이용해서 선언하고, 데이터구분은 ','를 이용한다.
    • 데이터 하나하나를 아이템(요소)라고 한다,
    • 리스트 안에는 숫자,문자,논리형등의 기본 데이터와 또 다른 컨테이너 자료형 데이터를 저장할 수 있다.
    students = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
    print('students : {}'.format(students))
    print('students type: {}'.format(type(students)))
    
    >>>
    students : ('홍길동', '박찬호', '이용규', '박승철', '김지은')
    students type: <class 'tuple'>

     

    주의!

    아이템이 하나일 경우, 뒤에 콤마를 찍어줘야 튜플 자료형으로 인식한다.

    student1 = ('홍길동')
    print('students : {}'.format(student1))
    print('students type: {}'.format(type(student1)))
    student2 = ('홍길동',)
    print('students : {}'.format(student2))
    print('students type: {}'.format(type(student2)))
    
    >>>
    students : 홍길동
    students type: <class 'str'>
    students : ('홍길동',)
    students type: <class 'tuple'>

     

    인덱스

    튜플 아이템은 인덱스를 이용해서 조회가능.

    students = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
    print('students : {}'.format(students))
    print('students[0]: {}'.format(students[0]))
    print('students[1]: {}'.format(students[1]))
    print('students[2]: {}'.format(students[2]))
    print('students[3]: {}'.format(students[3]))
    print('students[4]: {}'.format(students[4]))
    
    
    >>>
    students : ('홍길동', '박찬호', '이용규', '박승철', '김지은')
    students[0]: 홍길동
    students[1]: 박찬호
    students[2]: 이용규
    students[3]: 박승철
    students[4]: 김지은

     

    in, not in 키워드

    아이템의 존재 유/무 확인

    students = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
    
    searchName = input('학생이름 입력 : ')
    
    if searchName in students:
        print('{}학생은 우리반 학생입니다'.format(searchName))
    else:
        print('{}학생은 우리반 학생이 아닙니다'.format(searchName))
        
    >>>
    학생이름 입력 : 홍길동
    홍길동학생은 우리반 학생입니다

     

    ex) 문장에서 비속어가 있는지 알아내는 프로그램 만들기

    wrongWord = ['씨x','개','즐','자식']
    sentence = '안녕 개 자식 잘지냈니? '
    
    for word in wrongWord:
        if word in sentence:
            print('비속어 : {}'.format(word))
            
    >>>
    비속어 : 개
    비속어 : 자식

     

    튜플의길이

    리스트와 마찬가지로, 튜플에 저장된 아이템 개수를 튜플길이라고 한다.

    students = ('홍길동', '박찬호', '이용규', '박승철', '김지은')
    Length = len(students)
    
    print('length of students : {}'.format(Length))
    
    >>>
    length of students : 5

     

    튜플 결합

    리스트의 결합은 append, + 두가지방법이 있으나,

    튜플은 append불가능 -> append는 a + b = a 이기 때문에 a튜플의 수정이 생김 (*튜플은 수정이 불가능! )

    studentsTuple1 = ('홍길동', '박찬호', '이용규')
    studentsTuple2 = ('박승철', '김지은','강호동')
    
    stuple = studentsTuple1 + studentsTuple2
    
    print(f'stuple:{stuple}')
    
    >>>
    stuple:('홍길동', '박찬호', '이용규', '박승철', '김지은', '강호동')

     

    ex) 튜플을 이용해서 나와 친구가 좋아하는 번호를 합치되 번호가 중복되지 않게 하는 코드를 만들어보자.

    myFavoriteNum = (1,3,5,6,7)
    frFavoriteNum = (2,3,5,8,10)
    
    print(f'myFavoriteNum : {myFavoriteNum}')
    print(f'frFavoriteNum : {frFavoriteNum}')
    
    for number in myFavoriteNum:
        if number not in frFavoriteNum:    
            frFavoriteNum = frFavoriteNum + (number, )
    print(frFavoriteNum)

    * frFavoriteNum = frFavoriteNum + (number, )

    number는  int 자료형이기 때문에 Tuple + int 형태로 오류가 된다.

    --> (number, )는 임시로 튜플 자료형으로 만들어 줘야 한다.

     

    'Language > 자료구조' 카테고리의 다른 글

    리스트와 튜플  (0) 2024.05.25
    튜플(Tuple) > 슬라이싱  (0) 2024.05.24
    리스트(List) > 그 외 기능  (0) 2024.05.23
    리스트(List) > 슬라이싱  (0) 2024.05.23
    [Python] enumerate() 함수  (0) 2024.05.22
Designed by Tistory.