파이썬 시퀀스 타입

문자열 : 불변객체
튜플 : 불변객체
리스트 : 가변
바이트 배열
바이트 : 가변객체

리스트 깊은 복사 법

myList = [1,2,3,4]

newList = myList[:]

newList2 = list(newList)

튜플 깊은 복사

people = {"버피", "에인절", "자일스"}
slayers = people # 얇은 복사

깊은 복사를 하려면 copy()를 써야함


slayers.discard("버피")
print(slayers)
print(people)

깊은 복사는 값을 모두 복사해 새로운 객체에 넣는 것.
얇은 복사는 객체의 주소를 복사하는 것

hello = "asdf"

hello[1] = "asdfadsf"

print(hello)

// 에러 발생

문자열 메소드 join
A.join(B) = B에 있는 문자열을 A로 결합

slayer = ["버피", "앤", "아스틴"]
mew2 = " j".join(slayer)

문자열 메소드 ljust, rjust(width, fillchar)
ljust 는 왼쪽부터 문자열을 포함한 width 의 개수만큼 fillchar 로 채움
rjust 는 오른쪽

name = "하이"
newName = name.ljust(30, "-")
print(newName)

split(t, n)
t 를 기준으로 n번만큼 분리 n 파라미터가 없으면 할 수 있는 만큼 모두 분리


wapcase()
문자열의 대소문자 반전 복사본 반환

튜플은 불변 시퀀스 타입
내부 내용을 변경하는 것이 불가능하다. like 문자열

예제1) 단순문자열 압축

def str_compression(s):
    count, last = 1, ""
    list_aux = []

    for i, c in enumerate(s): # (0, 글자) 튜플 형태로 저장
        if last == c:  # 현재 지정된 글자가 반복된다면
            count += 1 # 카운트 더해줌
        else:   # 새로운 글자가 나왔다면
            if i!= 0: # 현재 첫번째 글자를 가르키고 있는게 아니라면
                list_aux.append(str(count)) # 숫자 + 글자
            list_aux.append(c)
            count = 1 # 카운트 초기화 하고
            last = c # 새로운 글자 가 몇개인지 다시 세 줌
    list_aux.append(str(count))  # 마지막에 개수 세는 걸 해줘야되서 있어야함
    return "".join(list_aux) #문자열로 만들어주기

if __name__ == "__main__":
    result = str_compression("aaaaaabbbbbcccc")
    print(result)

예제2) 단어 뒤집기


def reversing_words_sentence_logic(new_list):
    # 전체 뒤집기
    list1 = new_list[::-1]
    # 단어만 다시 뒤집기
    list2 = list1.split(" ")
    str = ""
    for i in list2:
        str += i[::-1] + " "
    print(str)
    return 0

if __name__ == "__main__":
    str1 = "파이썬 알고리즘 정말 좋다."
    str2 = reversing_words_sentence_logic(str1)

예제3) 문자열 뒤집기


def revert(s):
    if s:
        s = s[-1] + revert(s[:-1])
    # 재귀 함수를 이용한 문자열 뒤집기
    return s

def revert2(s):
    return s[::-1]
    # 스플릿 이용한 뒤집기 ( 0부터 -1 씩 뒤에서 부터)
    # 증가폭을 마이너스로 지정했을 경우 시작 인덱스를 끝 보다 크게 지정해야함.

if __name__ == "__main__":
    str1 = "안녕 세상!"
    str2 = revert(str1)
    str3 = revert2(str1)
    print(str2)
    print(str3)

좋은 웹페이지 즐겨찾기