파이썬 시퀀스 타입
문자열 : 불변객체
튜플 : 불변객체
리스트 : 가변
바이트 배열
바이트 : 가변객체
리스트 깊은 복사 법
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)
Author And Source
이 문제에 관하여(파이썬 시퀀스 타입), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lky9303/파이썬-시퀀스-타입저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)