파이썬 - 자료형 심화

    728x90

    1. 문자열 다루기

     

    1-1. 소문자를 대문자로 바꾸는 방법 (upper)

    >>>"be proud of yourself".upper()
    "BE PROUD OF YOURSELF"

     

    1-2. 대문자를 소문자로 바꾸는 방법 (lower)

    >>>"LOVE YOURSELF".lower()
    "love yourself"

     

    1-3. 문자열 바꾸는 방법 (replace)

    >>>"오늘 날씨는 흐림 입니다.".replace("흐림","맑음")
    "오늘 날씨는 맑음 입니다."

     

    1-4. 문자열 위치 찾는 방법(find)

    index값 반환, 없으면 -1 반환

    >>>"Hello World!".find("World")
    6

     

    1-5. 문자열을 분리하는 방법(split)

    >>>'나이키신발 265 X2421 78000'.split()
    ['나이키신발','265', 'X2421', '78000']
    
    >>>'나이키신발:265:X2421:78000'.split(':')
    ['나이키신발','265', 'X2421', '78000']

     

    1-6. 문자열을 연결하는 방법(join)

    >>>''.join(['나이키신발','265','X2421','78000])
    '나이키신발 265 X2421 78000'
    
    >>>':'.join(['나이키신발','265','X2421','78000])
    '나이키신발:265:X2421:78000'

     

    1-7. 공백 삭제하는 방법 방법(strip)

    >>>'            Yeah           '.lstrip() #왼쪽 공백 삭제
    'Yeah           '
    
    >>>'            Yeah           '.rstrip() #오른쪽 공백 삭제
    '            Yeah'
    
    >>>'            Yeah           '.strip() #양쪽 공백 삭제
    'Yeah'

     

    2. 문자열 포매팅

     

    2-1. 문자열 포매팅이 필요한 이유

    #문자열 포매팅이 없을 경우
    
    name = '기준'
    duration = 7
    
    message = name+ '님 수강기간이 ' + str(duration) + '일 남았습니다.'
    print(message)
    
    #문자열 포매팅 사용시
    message_format = f'{name}님 수강기간이 {duration}일 남았습니다.'
    print(message_format)

     

    2-2. format 메서드

    '{인덱스}'.format(데이터)

    #사용 방법 #숫자로 순서 지정 가능
    >>> 'Hello {0}{1}{2}'.format('apple','pineapple','pen')
    'Hello apple pineapple pen'
    
    #인덱스 생략 방법 -> 생략하면 format 순서대로 들어감
    >>> 'Hello {}{}{}'.format('apple','pineapple','pen')
    'Hello apple pineapple pen'

     

     

    2-3. f-string

    f'문자열{변수명}'

    name1= 'apple'
    name2= 'pineapple'
    name3= 'pen'
    
    msg = f'Hello{name1}{name2}{name3}' #변수명으로 호출
    
    'Hello apple pineapple pen'

     

    3. 리스트 다루기

     

    3-1. 리스트에 데이터 추가(append)

    >>> fruits = ['apple', 'orange']
    >>> fruits.append('grape')
    >>> print(fruits)
    ['apple', 'orange', 'grape']

     

    3-2. 리스트에 리스트 추가하는 방법(append)

    >>> fruits = ['apple', 'orange']
    >>> fruits.append(['grape', 'mango'])
    >>> print(fruits)
    ['apple', 'orange', ['grape', 'mango']]

     

    3-3. 리스트 데이터 삭제하는 방법(pop, remove)

    >>> fruits = ['apple', 'orange', 'mango']
    >>> fruits.pop() #pop값을 비워둘 시 마지막 값이 삭제됨(stack)
    'mango' #반환값
    >>> print(fruits)
    ['apple', 'orange']
    #인덱스 이용
    >>> fruits = ['apple', 'orange', 'mango']
    >>> fruits.pop(0)
    'apple'
    >>> print(fruits)
    ['orange', 'mango']
    #데이터 이용
    >>> fruits = ['apple', 'orange', 'mango']
    >>> fruits.remove('orange')
    >>> print(fruits)
    ['apple', 'mango']
     

    3-4. 리스트 특정 값의 인덱스 구하는 방법(index)

    >>> fruits = ['apple', 'orange', 'mango']
    >>> fruits.index('orange')
    1

     

    3-5. 리스트 특정 값의 개수 구하는 방법(count)

    >>> fruits = ['apple', 'orange', 'mango', 'apple', 'apple']
    >>> fruits.count('apple')
    3

     

    3-6. 리스트 모든 요소 삭제 하는 방법(clear)

    >>> fruits = ['apple', 'orange', 'mango', 'apple', 'apple']
    >>> fruits.clear()
    >>> print(fruits)
    []
     

    3-7. 리스트 정렬하기(sort)

    #오름차순 정렬
    >>> numbers = [5, 2, 8, 1, 10]
    >>> numbers.sort()
    >>> print(numbers)
    [1, 2, 5, 8, 10]
    
    #내림차순 정렬
    >>>number.sort(reverse=True)
    [10, 8, 5, 2, 1]

     

    3-8. for in 반복문 사용할 때 인덱스같이 출력하는 방법(enumerate)

    >>>numbers = [5, 2, 8, 1, 10]
    >>>for index, number in enumerate(numbers):
    >>>    print(index, number)
    
    0 5
    1 2
    2 8
    3 1
    4 10
    
    #1부터 시작
    >>>numbers = [5, 2, 8, 1, 10]
    >>>for index, number in enumerate(numbers,1):
    >>>    print(index, number)
    
    1 5
    2 2
    3 8
    4 1
    5 10

     

    4. 리스트 내포

    for, if문 등을 지정하여

    리스트를 간편하게 만드는 것

     

    4-1. 리스트 내포 - for 문 사용하기

    [표현식 for 변수 in 순회가능한 데이터]
    >>> nums = [i for i in range(5)]
    >>> print(nums)
    [0, 1, 2, 3, 4]
    
    
    >>> nums = [100, 200, 300]
    >>> double_nums = [i * 2 for i in nums]
    print(double_nums)
    [200, 400, 600]

     

    4-2. 리스트 내포 - if 문 사용하기

    [표현식 for 변수 in 순회가능한 데이터 if 조건식]
    >>> nums = [i for i in range(10) if i % 2 == 0]
    >>> print(nums)
    [0, 2, 4, 6, 8]
    
    
    >>> nums = [100, 200, 300, 400, 500]
    >>> double_nums = [i * 2 for i in nums if i  >= 300]
    print(double_nums)
    [600, 800, 1000]
    
    #else가 있는 경우
    >>> items = ['오메가3', None, '비타민C500', None, '홍삼절편']
    >>>result = i if i != None else '' for i in items]
    >>>print(result)
    ['오메가3', '', '비타민C500', '', '홍삼절편']

     

    5. 할당과 복사

    #리스트 할당 방식
    
    >>>x=[1,2,3,4,5]
    >>>y=x
    >>>y[2] =0
    >>>print(x)
    >>>print(y)
    
    [1,2,3,4,5]
    [1,2,3,4,5]
    #리스트 할당 방식은 변수에 데이터가 저장되는게 아니라 변수가 데이터를 가리키는 것
    #id(x), id(y)로 주소값을 확인하면 같은 주소값을 가리킨다
    #y 리스트를 변경해도 x 리스트가 변경된다.(동일한 데이터를 가리킴)
    #따라서 리스트를 복사하려면 .copy()를 사용해야함
    
    
    #리스트 복사 방식
    >>>x=[1,2,3,4,5]
    >>>y=x.copy()
    >>>y[2] =0
    >>>print(x)
    >>>print(y)
    
    [1,2,3,4,5]
    [1,2,0,4,5]
    
    
    # 중첩 리스트 복사 방식
    # 리스트 안에 리스트가 있는 중첩 리스트의 경우
    # copy 패키지의 deepcopy 메서드를 사용해야함
    >>>import copy
    >>>c= [[1,2], [3,4,5]]
    >>>d= copy.deepcopy(c)
    >>>d[0][0] = 0
    >>>print(c)
    >>>print(d)
    
    [[1,2],[3,4,5]]
    [[0,2],[3,4,5]]

    'Python > 문법' 카테고리의 다른 글

    파이썬 - 정규표현식  (0) 2022.01.17
    파이썬 - 함수 중급  (0) 2022.01.10
    파이썬 - enumerate 함수  (0) 2022.01.04
    파이썬 - 예외 처리  (0) 2022.01.03
    파이썬 - 모듈  (0) 2021.12.31

    댓글