파이썬 자료구조2

InSung-Na·2023년 1월 18일
0
post-thumbnail

해당 글은 제로베이스데이터스쿨 학습자료를 참고하여 작성되었습니다

📌튜플(Tuple)

  • 리스트와 비슷하지만, 데이터 변경 불가
  • 리스트에 수행했던 대다수의 함수 사용가능
    📝입력
students = ('홍길동', '박찬호', '유재석')
print(students)

🧾출력

('홍길동', '박찬호', '유재석')

📌튜플 인덱싱과 슬라이싱

📝입력

students = ('홍길동', '박찬호', '유재석')
print(students[0])
print(students[1])
print(students[2])
print(students[0:2])
print(students[-3:-1])

🧾출력

홍길동
박찬호
유재석
('홍길동', '박찬호')
('홍길동', '박찬호')

📌튜플->리스트 자료형 변환과 데이터정렬

  • 튜플을 리스트로 변경 후 데이터를 수정하고 다시 튜플로 자료형을 변환한다.

    (출처:제로베이스데이터스쿨)

sorted()함수는 데이터를 정렬하여 List로 반환하기 때문에 Tuple를 그대로 사용해도 된다

📝입력

userList = ('홍길동', '박찬호', '유재석')
print(type(userList))
print(type(list(userList)))
print(sorted(userList))

🧾출력

<class 'tuple'>
<class 'list'>
['박찬호', '유재석', '홍길동']

📌in, not in 키워드

  • 아이템이 포함되거나 미포함되는 것을 의미함

📝입력

students = ('홍길동', '박찬호', '유재석')
userSearch = input('검색 대상 : ')
if userSearch in students:
    print(f'{userSearch}는 해당 학급입니다')
else:
    print(f'{userSearch}는 학생이 아닙니다')

🧾출력

검색 대상 : 유재석
유재석는 해당 학급입니다

------------------------------------

검색 대상 : 송중기
송중기는 학생이 아닙니다

📌튜플 결합

  • 덧셈 연산자를 이용하여 새로운 튜플을 생성한다
  • 튜플은 extend()를 사용할 수 없다

📝입력

students = ('홍길동', '박찬호', '유재석')
students2 = ('송중기', '메시', '호날두')
stu3 = students + students2
print(stu3)

🧾출력

('홍길동', '박찬호', '유재석', '송중기', '메시', '호날두')

📌리스트와 튜플의 차이점

(출처:제로베이스데이터스쿨)

📝입력

students = ('홍길동', '박찬호', '유재석')
students2 = ('송중기', '메시', '호날두')
stu3 = students + students2
print(stu3)

🧾출력

('홍길동', '박찬호', '유재석', '송중기', '메시', '호날두')

📌튜플과 반복문

(출처:제로베이스데이터스쿨)


📌딕셔너리(dictionary)

  • 키(key)와 값(value)를 이용하여 데이터를 관리한다
  • 키는 고유값으로 중복되면 안된다
    (출처:제로베이스데이터스쿨)

📝입력

people = {
    '이름' : '홍길동',
    '학교' : 'ZeroBase',
    '전공' : 'DataSchool',
    '취미' : ['여행', '요리'],
    '나이' : 30,
}
print(people)

🧾출력

{'이름': '홍길동', '학교': 'ZeroBase', '전공': 'DataSchool', '취미': ['여행', '요리'], '나이': 30}

📌딕셔너리 조회

딕셔너리와 키와 값을 이용하여 데이터를 조회할 수 있다

📝입력

people = {
    '이름': '홍길동',
    '학교': 'ZeroBase',
    '전공': 'DataSchool',
    '취미': ['여행', '요리'],
    '나이': 30,
}
print('키로 값 찾기')
print(people['전공'])
print(people.get('취미'))
print(people.get('취미')[1])
print()

print('값으로 키 찾기')
findValue = input('찾을 값 입력 : ')
for key, value in people.items():
    if value == findValue:
        print('키는 {} 입니다'.format(key))

🧾출력

키로 값 찾기
DataSchool
['여행', '요리']
요리

값으로 키 찾기
찾을 값 입력 : 홍길동
키는 이름 입니다

📌딕셔너리의 추가 및 수정

  • 딕셔너리를 선언하고, 해당 딕셔너리에 dic['key'] = 'value'의 형태로 추가한다
  • 기존에 가지고 있는 key값을 이용하여 선언하면 value가 수정된다

📝입력

myInfo = {}

myInfo['이름'] = '홍길동'
myInfo['주소'] = '대한민국 서울'
myInfo['취미'] = ['여행', '요리']
print(f'수정 전 : {myInfo}')

myInfo['이름'] = '전우치'
myInfo['주소'] = '대한민국 부산'
print('수정 후 : {}'.format(myInfo))

🧾출력

수정 전 : {'이름': '홍길동', '주소': '대한민국 서울', '취미': ['여행', '요리']}
수정 후 : {'이름': '전우치', '주소': '대한민국 부산', '취미': ['여행', '요리']}

📌전체조회 keys(), values(), items()

  • 전체 키와 값, 아이템을 조회할 수 있다

📝입력

people = {
    '이름': '홍길동',
    '학교': 'ZeroBase',
    '전공': 'DataSchool',
    '취미': ['여행', '요리'],
    '나이': 30,
}
print(people.keys())
print(people.values())
print(people.items())

🧾출력

dict_keys(['이름', '학교', '전공', '취미', '나이'])
dict_values(['홍길동', 'ZeroBase', 'DataSchool', ['여행', '요리'], 30])
dict_items([('이름', '홍길동'), ('학교', 'ZeroBase'), ('전공', 'DataSchool'), ('취미', ['여행', '요리']), ('나이', 30)])

📌딕셔너리 삭제 del, dic.pop()

  • 딕셔너리의 아이템을 삭제한다

📝입력

people = {
    '이름': '홍길동',
    '학교': 'ZeroBase',
    '전공': 'DataSchool',
    '취미': ['여행', '요리'],
    '나이': 30,
}
print('삭제 전')
print(people)
print()

print('del 삭제 후')
del people['나이']
print(people)
print()

print('pop 삭제 후')
del_data = people.pop('학교')
print(people)
print(f'삭제내용 : {del_data}')

🧾출력

삭제 전
{'이름': '홍길동', '학교': 'ZeroBase', '전공': 'DataSchool', '취미': ['여행', '요리'], '나이': 30}

del 삭제 후
{'이름': '홍길동', '학교': 'ZeroBase', '전공': 'DataSchool', '취미': ['여행', '요리']}

pop 삭제 후
{'이름': '홍길동', '전공': 'DataSchool', '취미': ['여행', '요리']}
삭제내용 : ZeroBase

📌그외 3가지 기능

in, not in

(출처:제로베이스데이터스쿨)


len()

(출처:제로베이스데이터스쿨)


clear()

(출처:제로베이스데이터스쿨)

0개의 댓글