728x90

문자열 관련 함수

문자열 자료형은 자체적으로 함수를 가지고 있습니다. 이러한 함수들을 문자열 내장 함수라고 합니다.

내장 함수를 사용하려면 문자열 변수 이름 뒤에 '.'(마침표)를 붙인 다음에 함수 이름을 쓰면 됩니다.

문자 개수 세기 (count)

a = "rabbit"
print(a.count('b'))

a변수 "rabbit"에서 문자 b의 개수를 출력합니다.

 

위치 알려주기 (find)

a = "나는 파이을 공부합니다"
print(a.find("파"))
print(a.find("하"))

a변수 "나는 파이을 공부 합니다"에서 "파"가 처음으로 나오는 위치를 출력합니다.

"하"와 같이 찾는 문자나 문자열이 존재하지 않는 경우 -1을 반환합니다.

 

위치 알려주기 (index)

a = "나의 취미는 공부입니다"
print(a.index("공"))
print(a.index("하"))

find와 같이 a변수 "나의 취미는 공부입니다"에서 "공"이 처음 나오는 위치를 출력합니다.

다른 점: find함수는 찾는 문자나 문자열이 존재하지 않는 경우 오류가 발생한다는 점입니다.

 

문자열 삽입 (join)

print(",".join("가나다라"))

"가나다라" 문자열의 각 문자 사이에 ", "(콤마)를 삽입합니다.

join함수는 리스트나 튜플도 입력으로 사용할 수 있습니다. 리스트와 튜플은 곧 배울 내용이니 참고만 해주세요.

print(",".join(["가","나","다","라"]))

간략하게 리스트는 양쪽을 [](대괄호)로 감싸는 것입니다.

 

소문자를 대문자로 바꾸기 (upper)

a = "python"
print(a.upper())

"python"을 모두 대문자로 바꿔주는 함수입니다. 만약 문자열이 대문자인 경우엔 아무 변화도 없습니다.

 

대문자를 소문자로 바꾸기 (lower)

a = "PYTHON"
print(a.lower())

"PYTHON"을 모두 소문자로 바꿔주는 함수입니다. upper와 같이 문자열이 소문자인 경우엔 아무 변화도 없습니다.

 

왼쪽, 가운데, 오른쪽 공백 지우기 (lstrip) 

 

a = "   파이썬   "
print(a.lstrip())
print(a.rstrip())
print(a.strip())

lstrip은 왼쪽에 있는 연속된 공백들을 모두 지우는 함수입니다. lstrip에서 l은 left를 의미합니다.

rstrip은 오른쪽에 있는 연속된 공백들을 모두 지우는 함수입니다. rstrip에서 r은 right를 의미합니다.

strip은 양쪽에 있는 연속된 공백들을 모두 지우는 함수입니다.

 

문자열 바꾸기 (replace)

a = "나는 자바를 공부합니다."
print(a.replace("자바","파이썬"))

문자열 안의 특정한 값을 다른 값으로 치환해 줍니다. 위와 같이 자바를 파이썬이라는 문자열로 치환해 주는 함수입니다.

 

문자열 나누기 (split)

a = "I Love You"
print(a.split())
b = "가,나,다,라,마"
print(b.split(","))

split함수는 a.split()처럼 괄호 안에 아무 값을 넣지 않으면 공백(스페이스, 탭, 엔터 등)을 기준으로 문자열을 나눕니다.

b.split(", ")처럼 괄호 안에 특정 값이 있는 경우에는 해당 값을 구분자로 해서 문자열을 나눕니다.

split함수를 통해 나눈 값은 리스트에 하나씩 들어가게 됩니다.

['I', 'Love', 'You']와 ['가', '나', '다', '라', '마']가 리스트인데 밑에서 자세히 알아보겠습니다.

문자열 관련 함수는 문자열 처리에 매우 사용 빈도가 높고 유용하니 꼭 알아두세요!

 

 

리스트 자료형

리스트의 사용 방법

1,2,3,4,5 숫자 모음을 리스트를 사용한다면 아래와 같이 간단하게 표현할 수 있습니다.

nums = [1,2,3,4,5]​

리스트를 만들 때는 위와 같이 대괄호([])로 감싸 주고 각 요솟값을 콤마(,)로 구분해 줍니다.

변수명 = [요소1, 요소2, 요소3, ...]

아래 여러가지 리스트를 살펴보겠습니다.

a = []
b = [1,2,3]
c = ["가","나","다"]
d = [1,2,"가","나"]
e = [1,2,["가","나"]]

a처럼 비어 있는 리스트일 수도 있고 b처럼 숫자를 요솟값으로 가질 수도 있고 c처럼 문자열을 요솟값으로 가질 수도 있습니다.

또한 d처럼 숫자와 문자열을 함께 요솟값으로 가질 수도 있고 e처럼 리스트 자체를 요솟값으로 가질 수도 있습니다.

즉 리스트 안에는 어떠한 자료형도 포함시킬 수 있습니다.

 

리스트의 인덱싱과 슬라이싱

리스트도 문자열처럼 인덱싱과 슬라이싱이 가능합니다.

리스트의 인덱싱

a = [1,2,3]
print(a)
print(a[0])
print(a[0]+a[2])
print(a[-1])

a변수에 [1,2,3]값을 설정합니다.

a[0]은 리스트 a의 첫 번째 요솟값을 말합니다.

a[0]+a[2]는 첫 번째 요소인 a[0]과 세 번째 요소인 a[2]의 값을 더한 것입니다. 1+3으로 4가 출력됩니다.

여기서 중요한점도 문자열처럼 0부터 세기 때문에 a[1]이 리스트의 첫 번째 요소가 아니라 a[0]이 리스트 a의 첫 번째 요소임을 꼭 명심해주세요.

[ 1 2 3 ]
  0 1 2  
  -3 -2 -1  

a[-1]은 뒤에서 첫 번째 요소를 의미하여 3이 출력됩니다.

 

다음 예제를 보겠습니다.

a = [1,2,3,["가","나","다"]]
print(a[0])
print(a[-1])
print(a[3])
[ 1 2 3 ["가","나","다"] ]
  0 1 2 3  
  -4 -3 -2 -1  

a[-1]은 마지막 요솟값 ["가", "나", "다"]를 나타냅니다. a[3]도 리스트 a의 네 번째 요소를 나타내기 때문에 a[-1]과 동일한 결과가 출력됩니다.

 

a리스트 포함된 ["가","나","다"] 리스트에서 "가" 값을 출력하는 방법을 알아보겠습니다.

print(a[-1][0])

위와 같이 하면 "가"를 출력할 수 있습니다. a[-1]이 ["가", "나", "다"] 리스트라는 것은 위에서 설명했습니다.

["가", "나", "다"] 리스트에서 첫 번째 요소를 출력하기 위해서 [0]을 붙여 준 것입니다.

-1
[ ]
  0 1 2  

Quiz) 그렇다면 나와 다를 출력하는 방법은 어떻게 될까요? 

정답 print(a[-1][1])  print(a[-1][2])

 

리스트의 슬라이싱

a = [1,2,3,4,5]
print(a[0:3])
a = "12345"
print(a[0:3])

문자열에서 사용한 슬라이싱과 리스트의 슬라이싱 방법이 완전히 동일하게 사용된 것을 볼 수 있습니다.

문자열에서의 슬라이싱 사용방법이 완전히 동일합니다.

 

예제를 좀 더 살펴보겠습니다.

a = [1,2,3,["가","나","다"],4,5]
print(a[2:5])
print(a[3][:2])
[ 1 2 3 ["가","나","다"] 4 5 ]
  0 1 2 3 4 5  

a[2:5]는 a리스트에서 세 번째 요솟값부터 5번째 요솟값 전까지 출력하게 됩니다.

a[3][:2]는 a리스트에서 4번째 요솟값인 ["가", "나", "다"] 리스트에서 2번째 요솟값 전까지 출력하게 됩니다.

 

리스트 연산하기

리스트도 문자열처럼 + 기호를 사용하여 더할 수 있고 * 기호를 사용하여 반복할 수 있습니다.

1. 리스트 더하기 (+)

a = [1,2,3]
b = [4,5,6]
print(a+b)

+기호는 a리스트와 b리스트를 합치는 기능을 합니다. 문자열에서 "123"+"456"이 "123456"이 되는 것과 같습니다.

 

2. 리스트 반복하기(*)

a = [1,2,3]
print(a*3)

*기호는 리스트 요솟값을 반복하게 됩니다. 문자열에서 "123" * 3이 "123123123"이 되는 것과 같습니다.

 

리스트의 수정과 삭제

리스트에서 값 수정하기

a = [1,2,3]
a[2] = 4
print(a)

a[2]의 요솟값인 3이 4로 바뀌었습니다.

 

del 함수로 리스트 요소 삭제하기

a = [1,2,3]
del a[1]
print(a)

del a[n]은 n번째 요솟값을 삭제합니다. 위에서는 del a[1]로 a리스트의 2번째 요솟값을 삭제하여 [1,3]이 출력됩니다.

del함수는 파이썬이 자체적으로 가지고 있는 삭제 함수이며 아래와 같이 사용합니다.

del 객체

슬라이싱 기법을 사용하여 리스트의 요소 여러 개를 한 번에 삭제할 수도 있습니다.

a = ["가","나","다","라","마"]
del a[3:]
print(a)

a[3:]에 해당하는 요솟값들이 모두 삭제되었습니다.

리스트의 요소를 삭제하는 방법에는 2가지가 더 있습니다.

리스트의 remove와 pop함수를 사용하는 방법이 있는데 아래에서 더 알아보도록 하겠습니다.

 

리스트 관련 함수

문자열과 마찬가지로 리스트 변수 이름 뒤에 '.'를 붙여서 여러 리스트 관렴 함수를 사용할 수 있습니다.

 

리스트에 요소 추가하기 (append)

append의 사전 의미는 '(글에) 덧붙이다, 첨부하다'입니다. <네이버 사전>

말 그대로 append(x)는 리스트의 맨 마지막에 요소 x를 추가하는 함수입니다.

a = [1,2,3]
a.append(4)
print(a)

위에서 리스트에는 어떤 자료형이든 추가할 수 있다고 배웠었는데 한번 추가해보겠습니다.

a.append("가")
a.append(["A","B"])
print(a)

 

리스트 정렬하기 (sort)

sort함수는 리스트 내의 요소들을 순서대로 정렬해줍니다.

a = [1,4,3,2]
a.sort()
print(a)

sort함수는 문자도 순서대로 정렬할 수 있습니다.

a = ["a","c","b"]
a.sort()
print(a)
b = ["나","다","가"]
b.sort()
print(b)

 

리스트 뒤집기 (reverse)

reverse함수는 리스트를 거꾸로 뒤집어 줍니다. 쉽게 생각해서 좌우 반전이라고 생각하시면 됩니다.

a = ["가","다","나"]
a.reverse()
print(a)

 

위치 반환 (index)

index(x) 함수는 리스트에 x값이 있으면 해당 x의 위치 값을 돌려줍니다.

a = [1,2,3]
print(a.index(3))
print(a.index(1))

파이썬은 0부터 시작입니다!

print(a.index(0))

위와 같이 리스트에 없는 요소를 찾게 되면 에러가 발생합니다.

 

리스트에 요소 삽입 (insert)

insert(a, b)는 리스트의 a번쨰 위치에 b를 삽입하는 함수입니다.

파이썬은 0부터 시작입니다!

a = [1,2,3]
a.insert(0,4)
print(a)

Quiz) a = [4,1,2,3]인 현재 상태에서 5를 2와 3 사이에 넣어보세요! 

정답:  a.insert(3,5)

 

리스트 요소 제거 (remove)

remove(x) 함수는 리스트에서 첫 번째로 나오는 x를 삭제하는 함수입니다.

a = [1,2,3,1,2,3]
a.remove(3)
print(a)

첫 번째로 나온 3만 제거되는 것을 확인하실 수 있습니다.

 

리스트 요소 꺼내기 (pop)

pop() 함수는 리스트의 맨 마지막 요소를 반환하고 그 요소는 리스트에서 삭제합니다.

a = [1,2,3]
print(a.pop())
print(a)

맨 마지막 요소인 3이 반환되고 리스트에는 1과 2만 남아있게 됩니다.

 

+pop(x)는 리스트의 x번째 요소를 반환하고 그 요소는 리스트에서 삭제합니다.

a = [1,2,3]
print(a.pop(1))
print(a)

1번째 요소인 2가 튀어나오고 삭제됩니다.

 

리스트에 포함된 요소 x의 개수 세기 (count)

count(x)는 리스트 안에 요소가 x인 개수가 몇 개 있는지를 확인하는 함수입니다.

a = [1,2,3,1,4]
print(a.count(1))

1의 개수는 총 2개가 출력됩니다.

 

리스트 확장 (extend)

extend(x)에서 x에는 리스트만 올 수 있고 원래의 리스트에 x 리스트를 더하게 됩니다.

x+y를 하여 x+y라는 새로운 z리스트를 생성해주는 개념입니다.

예제를 보시면 이해하기 쉬울 거예요!

a = [1,2,3]
a.extend([4,5])
print(a)
b = ["가","나"]
a.extend(b)
print(a)

a에 [1,2,3] 리스트를 생성하고 a에 [4,5]라는 리스트를 더해줍니다. => [1,2,3,4,5]

이후 b에 ["가", "나"] 리스트를 생성하고 a에 b리스트를 더해줍니다. => [1, 2, 3, 4, 5, '가', '나']

 

 

기초 다음 시간에는 튜플 자료형부터 시작하겠습니다.

매우 중요한 부분들이니 꼭 반복해서 학습하시고 궁금하신 점은 댓글에 올려주세요! :)

 

 

 

728x90

'Python' 카테고리의 다른 글

# 파이썬 - 7 (기초4)  (0) 2021.05.15
# 파이썬 - 6 (기초3)  (0) 2021.05.11
#파이썬 - 4 (기초)  (0) 2020.07.04
#파이썬 - 3 (Visual Studio Code 설정)  (2) 2020.07.02
#파이썬 - 2 (설치)  (2) 2020.07.01

+ Recent posts