Python 데이터구조 1

이남경·2024년 1월 22일
0

SSAFY 11기

목록 보기
8/67

Data Structure


Data Structure

개요

데이터 구조 (Data Structure)

여러 데이터를 효과적으로 사용, 관리하기 위한 구조 (str, list, dict 등)

자료 구조

  • 컴퓨터 공학에서는 ‘자료 구조’ 라고 함

  • 각 데이터의 효율적인 저장, 관리를 위한 구조를 나눠 놓은 것

image

데이터 구조 활용

  • 문자열, 리스트, 딕셔너리 등 각 데이터 구조의 메서드를 호출하여 다양한 기능을 활용하기

Method


메서드 (method)

객체에 속한 함수

  • 객체의 상태를 조작하거나 동작을 수행

메서드 특징

  • 메서드는 클래스(class) 내부에 정의되는 함수

  • 클래스는 파이썬에서 ‘타입을 표현하는 방법’이며 이미 은연중에 사용해왔음

  • 예를 들어 help 함수를 통해 str을 호출해보면 class 였다는 것을 확인 가능

지금 시점에 알아야 할 것

메서드는 어딘가(클래스)에 속해 있는 함수이며, 각 데이터 타입별로 다양한 기능을 가진 메서드가 존재

메서드 호출 방법

  • 데이터 타입 객체.메서드()

시퀀스 데이터 구조


문자열

문자열 조회/탐색 및 검증 메서드

문자열 조작 메서드

[, count]처럼 []안에 작성하면 선택인자임 → 배커스 나우르 표기법

join = 구분자가 앞쪽에 나온다는 특성이 있음

리스트

리스트 값 추가 및 삭제 메서드

print(my_list.append([10, 9, 8]))을 출력하면 return 값이 None 이 나온다.

삭제하려고자 하는 값이 여러개라면 제일 앞에서 일치하는 항목만 삭제된다.

remove와 비슷하지만, 반환값! 을 구할 수 있다는 점이 다르다 반환값이란 제거된 값을 말한다!

리스트 자체를 없애는 것이 아니라 리스트 안의 내용물을 없애는 것임!

리스트 탐색 및 정렬 메서드

위치에 상관 없이 등장하는 횟수를 셈!

반환값이 None 이다! → 리턴값이 없기 때문, 원본을 출력한다

sort(reverse = True)가 기본값임. 만약 이걸 True 로 바꿀 경우 다시 원래 상태로 돌아감.

reverse의 기본값은 False 임 만약 이걸 True 로 바꿀 경우 다시 원래 상태로 돌아감.

비시퀀스 데이터 구조


세트 (set)

고유한 항목들의 정렬되지 않은 컬렉션

.add(x)

  • 세트에 x를 추가

.clear()

  • 세트의 모든 항목을 제거

.remove(x)

  • 세트에서 항목 x를 제거

.discard()

  • 세트 s에서 항목 x를 제거. remove와 달리 에러 없음

.pop()

  • 세트에서 임의의 요소를 제거하고 반환

.update(iterable)

  • 세트에 다른 iterable 요소를 추가

세트의 집합 메서드

딕셔너리 (dictionary)

고유한 항목들의 정렬되지 않은 컬렉션

.clear()

  • 딕셔너리 D의 모든 키/값 쌍을 제거

.get(key[,default])

  • 키 연결된 값을 반환하거나 키가 없으면 None 혹은 기본 값을 반환

.keys()

  • 딕셔너리 키를 모은 객체를 반환

.values()

  • 딕셔너리 값을 모은 객체를 반환

.items()

  • 딕셔너리 키/값 쌍을 모은 객체를 반환

.pop(key[,default])

  • 키를 제거하고 연결됐던 값을 반환 (없으면 에러나 default 를 반환)

.setdefault(key[,default])

  • 키와 연결된 값을 반환 키가 없다면 default와 연결한 키를 딕셔너리에 추가하고 default를 반환

.update([other])

  • other가 제공하는 키/값 쌍으로 딕셔너리를 갱신 기존 키는 덮어씀

복사


데이터 타입과 복사

  • 파이썬에서는 데이터에 분류에 따라 복사가 달라짐

  • '변경 가능한 데이터 타입'과 '변경 불가능한 데이터 타입'을 다르게 다룸

복사유형

  1. 할당 (Assignment)

  1. 얕은 복사 (Shallow copy)

slicing을 활용해 새로운 리스트로 반환

얕은 복사의 한계

  1. 깊은 복사 (Deep copy)

original list에는 복사한 내용이 영향을 주지 않음

참고


문자열에 포함된 문자들의 유형을 판별하는 메서드

  • isdecimal()

    • 문자열이 모두 숫자 문자(0~9)로만 이루어져 있어야 True
  • isdigit()

    • isdecimal()과 비슷하지만, 유니코드 숫자도 인식 ('①’ 도 숫자로 인식)
  • isnumeric()

    • isdigit()과 유사하지만, 몇 가지 추가적인 유니코드 문자들을 인식 (분수, 지수, 루트 기호도 숫자로 인식)

0개의 댓글

관련 채용 정보