ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python 튜토리얼 02 문자열과 리스트
    Study/Python 튜토리얼 2025. 9. 22. 10:10

     

    목차

     

    - 들어가며: 문자열과 리스트, 데이터 처리의 시작

    - 문자열 심화: 더 자유롭게 다루기

    - 여러 데이터를 한 번에! 리스트 (List)

    - 마치며: 오늘의 핵심 정리

     


    들어가며: 문자열과 리스트, 데이터 처리의 시작

    안녕하세요! 파이썬 데이터 처리의 세계에 오신 것을 환영합니다.

    오늘은 파이썬에서 가장 기본적이면서도 강력한 데이터 타입인 문자열(String)리스트(List)를 자유자재로 다루는 방법에 대해 알아보겠습니다. 이 두 가지만 잘 다루어도 대부분의 데이터를 원하는 형태로 가공할 수 있습니다.

     


    1. 문자열 심화: 더 자유롭게 다루기

    문자열은 단순히 글자의 나열이 아닙니다. 파이썬에서는 문자열을 더하고, 곱하고, 변형하는 등 다채로운 기능을 제공합니다.

    1-1. 문자열 연산

    문자열은 + 연산자로 이어 붙이거나, * 연산자로 반복할 수 있습니다

    # 문자열 합치기
    print("3" + "4") # 결과: 34
    
    # 문자열 반복
    print("Hi" * 3) # 결과: HiHiHi
    print("-" * 80) # 결과: --------------------------------------------------------------------------------
    
    # 응용: 여러 문자열 조합 후 반복
    t1 = "python"
    t2 = "java"
    combined = t1 + " " + t2 + " "
    print(combined * 4) # 결과: python java python java python java python java
    

    1-2. 변수를 포함한 문자열 출력 (포매팅)

    문자열 안에 변수 값을 넣어 출력하는 세 가지 주요 방법입니다.

    name1 = "김민수"
    age1 = 10
    name2 = "이철희"
    age2 = 13
    
    # %-포매팅
    print("이름: %s 나이: %d" % (name1, age1)) # 결과: 이름: 김민수 나이: 10
    
    # .format() 메서드
    print("이름: {} 나이: {}".format(name2, age2)) # 결과: 이름: 이철희 나이: 13
    
    # f-string (가장 직관적이고 추천하는 방식)
    print(f"이름: {name1} 나이: {age1}") # 결과: 이름: 김민수 나이: 10
    

    1-3. 문자열 가공 및 정리 메서드

    문자열은 자체적으로 데이터를 정리하고 변형하는 유용한 기능(메서드)들을 가지고 있습니다.

    # replace: 특정 문자를 다른 문자로 교체
    상장주식수 = "5,969,782,550"
    컴마제거 = 상장주식수.replace(",", "")
    타입변환 = int(컴마제거)
    print(타입변환, type(타입변환)) # 결과: 5969782550 <class 'int'>
    
    # strip: 양쪽의 불필요한 공백 제거
    data = "   삼성전자    "
    print(data.strip()) # 결과: 삼성전자
    
    # upper/lower/capitalize: 대소문자 변경
    ticker = "btc_krw"
    print(ticker.upper()) # 결과: BTC_KRW
    print("BTC_KRW".lower()) # 결과: btc_krw
    print("hello".capitalize()) # 결과: Hello
    
    # split: 특정 기호를 기준으로 문자열을 분리 (결과는 리스트)
    a = "hello world"
    print(a.split()) # 결과: ['hello', 'world']
    ticker = "btc_krw"
    print(ticker.split("_")) # 결과: ['btc', 'krw']
    

    1-4. 문자열 확인 메서드

    특정 패턴으로 문자열이 시작하거나 끝나는지 논리값(True/False)으로 확인할 수 있습니다.

    # startswith: 특정 문자열로 시작하는지 확인
    file_name = "2020_보고서.xlsx"
    print(file_name.startswith("2020")) # 결과: True
    
    # endswith: 특정 문자열로 끝나는지 확인
    file_name = "보고서.xlsx"
    print(file_name.endswith("xlsx")) # 결과: True
    print(file_name.endswith(("xlsx", "xls"))) # 결과: True
    

    1-5. 원하는 부분만 선택하기 (인덱싱과 슬라이싱)

    문자열의 각 글자는 고유한 번호(인덱스)를 가집니다. 이를 이용해 원하는 부분만 잘라낼 수 있습니다.

    Python
     
    # 슬라이싱: 특정 범위의 문자열 잘라내기
    분기 = "2020/03(E) (IFRS연결)"
    print(분기[:7]) # 결과: 2020/03
    
    license_plate = "24가 2210"
    print(license_plate[-4:]) # 결과: 2210
    
    # 슬라이싱 응용: 건너뛰거나 뒤집기
    string = "홀짝홀짝홀짝"
    print(string[::2]) # 결과: 홀홀홀
    string = "PYTHON"
    print(string[::-1]) # 결과: NOHTYP
    

     


     

    2. 여러 데이터를 한 번에! 리스트 (List)

    리스트는 여러 종류의 데이터를 하나의 변수에 순서대로 담아 관리할 수 있는 자료구조입니다.

    2-1. 리스트 생성, 추가, 삽입, 삭제

    리스트는 대괄호 []로 생성하며, append, insert, del 키워드로 데이터를 관리합니다.

    # 리스트 생성
    movie_rank = ["닥터 스트레인지", "스플릿", "럭키"]
    
    # append: 리스트 맨 뒤에 원소 추가
    movie_rank.append("배트맨")
    print(movie_rank) # 결과: ['닥터 스트레인지', '스플릿', '럭키', '배트맨']
    
    # insert: 원하는 위치(1번 인덱스)에 원소 삽입
    movie_rank.insert(1, "슈퍼맨")
    print(movie_rank) # 결과: ['닥터 스트레인지', '슈퍼맨', '스플릿', '럭키', '배트맨']
    
    # del: 특정 위치(3번 인덱스)의 원소 삭제
    del movie_rank[3]
    print(movie_rank) # 결과: ['닥터 스트레İNİ', '슈퍼맨', '스플릿', '배트맨']
    

    2-2. 리스트 연산 및 기본 함수

    리스트끼리 더하거나, 숫자 리스트의 경우 다양한 계산 함수를 적용할 수 있습니다.

    # 리스트 합치기
    lang1 = ["C", "C++", "JAVA"]
    lang2 = ["Python", "Go", "C#"]
    print(lang1 + lang2) # 결과: ['C', 'C++', 'JAVA', 'Python', 'Go', 'C#']
    
    # 숫자 리스트 기본 함수
    nums = [1, 2, 3, 4, 5, 6, 7]
    print("max:", max(nums)) # 결과: max: 7
    print("min:", min(nums)) # 결과: min: 1
    print("sum:", sum(nums)) # 결과: sum: 28
    print("len:", len(nums)) # 결과: len: 7
    print("avg:", sum(nums) / len(nums)) # 결과: avg: 4.0
    

    2-3. 리스트와 문자열 변환 (join과 split)

    join 메서드는 리스트를 하나의 문자열로, split 메서드는 문자열을 리스트로 변환하는 핵심 기능입니다.

    # join: 리스트의 원소들을 특정 구분자로 합쳐 문자열로 생성
    interest = ["삼성전자", "LG전자", "Naver"]
    print(" ".join(interest)) # 결과: 삼성전자 LG전자 Naver
    print("/".join(interest)) # 결과: 삼성전자/LG전자/Naver
    print("\n".join(interest))
    # 결과:
    # 삼성전자
    # LG전자
    # Naver
    
    # split: (위에서 설명)
    string = "삼성전자/LG전자/Naver"
    interest_list = string.split("/")
    print(interest_list) # 결과: ['삼성전자', 'LG전자', 'Naver']
    

    2-4. 리스트 정렬

    sort 메서드는 리스트의 원본 데이터를 직접 정렬합니다.

    data = [2, 4, 3, 1, 5, 10, 9]
    data.sort()
    print(data) # 결과: [1, 2, 3, 4, 5, 9, 10]
    

     


     

    마치며: 오늘의 핵심 정리

    • 문자열:  +, * 연산이 가능하며, replace, strip, split 등 다양한 메서드로 데이터를 가공할 수 있습니다.
    • 리스트: []로 생성하며, append, insert, del로 데이터를 관리합니다. sum, len 등 유용한 함수를 사용할 수 있습니다.
    • join과 split: 리스트와 문자열을 자유롭게 변환하는 필수적인 기능입니다.
    • 슬라이싱: 문자열과 리스트 모두 [시작:끝:간격] 형식으로 원하는 부분만 효율적으로 추출할 수 있습니다.

     

    출처:

     

    https://wikidocs.net/78552

     

    03. 파이썬 문자열

    파이썬 문자열은 인덱싱, 슬라이싱 기능과 다양한 메서드를 제공합니다.

    wikidocs.net

     

    https://wikidocs.net/78553

     

    04. 파이썬 리스트

    조금 더 자세한 설명을 원한다면 클래스101의 "Level2 중급 파이썬"을 추천합니다. 고급 문법을 아는 것이 고급 실력을 의미하지 않습니다. "Level1 기초 파이썬"부터 …

    wikidocs.net

     

Designed by Tistory.