Daily Life of BlueRose

컴퓨터 & 코딩 공부/파이썬

파이썬 기초(2) – 문자열, 리스트, 셋 및 클래스 관련 기능

푸른로즈 2024. 4. 19. 17:05
728x90

문자열 관련 기능

텍스트 결합/추출/조작

  1. +를 이용한 결합 : String 끼리는 +를 이용하여 연결할 수 있다.
  2. *를 이용한 복제 : String에 *n을 이용하여 문자열을 여러번 반복할 수 있다.
  3. 인덱스를 이용한 추출 : String의 인덱스로 Char를 추출할 수 있다. 음수도 입력가능하다.
  4. 인덱스를 이용한 슬라이스[start : end : step] : [start : end-1] 사이 문자를 추출. step으로 몇 글자씩 건너뛰면서 가져오는 것도 가능.
  5. String을 특정 문자로 나누기 : (문자열).split(“나눌문자”)
  6. String을 특정 문자로 결합하기 : (“결합문자”).join(순회가능한 개체)
    • join은 리스트/튜플의 메서드가 아니라 String을 위한 메서드다. 따라서 반드시 String을 취하는 결합문자가 앞에 나오고, 순회가능한 개체가 뒤에 나온다. 또한, (당연하지만) 순회 가능한 개체의 가장 마지막 구성요소 뒤에는 결합문자가 붙지 않는다.

찾기/참조

  1. 특정 문자열 찾기 : .find(‘찾을 문자열’)
  2. 특정 문자열을 뒤에서부터 찾기 : .rfind(‘찾을 문자열’)
  3. 특정 문자열이 반복되는 횟수 확인하기 : .count(‘특정 문자열’)
  4. 문자열의 길이 : len('문자열‘)
  5. 대체하기 : .replace(‘찾을 문자열’, ‘대체 문자열’, 바꿀 최대 횟수)
    • 찾을 문자열은 정규표현식을 이용하여 검색할 수 있다

728x90

대소문자

  1. 첫 단어 대문자로 만들기 : .capitalize()
  2. 모든 단어의 첫 글자를 대문자로 만들기 : .title()
  3. 모두 대문자로 만들기 : .upper()
  4. 모두 소문자로 만들기 : .lower()
  5. 대/소문자 전환 : .swapcase()

리스트 관련 기능

항목 추가/삭제

  1. 끝에 추가 : .append()
  2. 인덱스로 추가 : .insert(인덱스, ‘추가할 값’)
    • 리스트의 실제 길이값보다 큰 인덱스를 넣으면 예외를 던지지 않고 그냥 끝에 추가해준다
  3. 인덱스로 삭제 : del 리스트개체[인덱스]
    • del은 리스트 함수가 아니라 구문이다. 즉, 리스트.del()은 불가능하다.
  4. 인덱스로 변경 : 리스트개체[인덱스] = “입력할 내용”
    • 이 기능은 리스트에서만 가능하다. Tuple, String은 불변이다.
  5. 인덱스로 값 추출 후 삭제(queue/stack 기능) : .pop(인덱스) // 인덱스 미입력시 기본값은 –1
  6. 값으로 삭제 : .remove(‘삭제할 값’)

찾기 / 참조

  1. 값으로 인덱스 찾기 : .index(‘찾을 값’)
  2. 특정 값 존재여부 확인 : ‘찾을 값’ in 리스트개체
  3. 특정 값의 개수 확인 : .count(‘찾을 값’)
  4. 중복값 제거 : set(리스트개체)

기타

  1. 데이터를 리스트로 변경 : list()
    • 빈 리스트는 [], 튜플은 (), 딕셔너리는 {}로 생성가능하나, 헷갈리므로 함수를 쓰는게 낫다
  2. 리스트 병합 : A.extend(B) 혹은 A += B
  3. 리스트 정렬하기
    • 리스트 자체를 정렬 : .sort(리스트개체) // 역순의 경우, sort(리스트개체, reverse=True)
    • 리스트의 정렬된 복사본 반환 : .sorted(리스트개체) // 역순은 마찬가지로 reverse=True 추가
  4. 항목 개수 얻기 : len(리스트개체)
  5. 리스트 복사 : ①B=list(A) ②B=A.copy() ③B=A[:]
    • 단순히 B=A로 입력시, B는 A의 레퍼런스 변수가 되어 한 쪽 변경시 다른 쪽도 덩달아 변경됨

셋(set)관련 기능

  1. 개요 : Set에는 고유값만 입력가능하며, 순번은 의미없다. 주로 고유값 검출 및 고유값간 중복여부 확인에 사용된다.
  2. 리스트 A의 고유값 찾기 : B = set(A)
  3. 집합연산 - 집합 간 요소확인
집합 간 요소확인
  1. 집합연산 - 집합 간 관계확인
집합 간 관계확인

 

클래스와 객체모델

클래스

  1. 일반적인 클래스 구현
    • 파이썬의 클래스는 암묵적으로 object를 상속받는다(즉, 상속할 슈퍼클래스가 기본적으로 object인 셈). 다만 여기에 큰 의미는 없으며, 과거 Python2 시절에는 명시적으로 object를 상속해야했던것에 대한 호환이라고 생각하면 된다.
    • 인스턴스 생성시엔 '클래스_인스턴스명 = 클래스명(인자1, 인자2)'의 형태로 생성한다.
    • 기본적인 코드 구조
class 클래스명(상속할 슈퍼클래스명):
    def __init__(self, 매개변수1, 매개변수2):
        클래스명.속성1 = 매개변수1
        클래스명.속성2 = 매개변수2
  1. 네임드튜플을 이용한 간결한 구현
    • 기본적인 코드 구조 : 클래스명 = collections.namedtuple(‘클래스명’, [‘매개변수1’, ‘매개변수2’]
  2. 상속
    • 기본적인 코드 구조 : ‘class 클래스명(상속할 슈퍼클래스명):’
    • 참고사항 : 만약 슈퍼클래스의 내부구조물에 접근할 경우에는 super()를 사용한다

 

객체모델(데이터모델 / 마법메서드 구현)

  1. 객체모델(데이터모델)의 정의 : 특정 컴퓨터 프로그래밍 언어에서 일반적인 객체의 속성
  2. 마법메서드(특별메서드)
    • 개요 : 파이썬의 객체모델 특징의 구현을 위하여 고안된 존재로, len함수, 연산자의 사용, print함수 등이 호출하는 특수한 내부함수로 각 클래스마다 구현이 가능한 공통함수
    • 종류 및 호출방법
마법메서드/특별메서드의 종류와 호출방법

 

반응형