Python string 그냥 한번 대충 보기¶
문자열에 관하여 간단하게 보는 글
문자열 생성¶
a = 'abcdefgh'
b = "12345"
c = """ㄱㄴㄷ
ㄻㅄ
ㅇㅈㅊㅋ"""
print(a)
print(b)
print(c)
abcdefgh 12345 ㄱㄴㄷ ㄻㅄ ㅇㅈㅊㅋ
문자열 요소 접근¶
배열 접근하듯 하면 된다.
a[0]
'a'
a[4]
'e'
a[-1]
'h'
a[1:4]
'bcd'
a[-3:]
'fgh'
sentence = "hello world"
for c in sentence:
print(c)
h e l l o w o r l d
문자열의 길이는 ?¶
len(sentence)
11
더하기 기호로 문자열 붙이기¶
더하기 기호로 문자열을 이어붙일 수 있다.
s1 = "my name is "
s2 = "ken miles"
print(s1+s2)
my name is ken miles
문자열이 숫자로 이루어져있을 때 정수나 실수로 형변환하기¶
a = "123"
b = int(a)
c = float(a)
print(type(a),type(b),type(c))
<class 'str'> <class 'int'> <class 'float'>
문자열이 다 소문자인가요? 아니면 대문자인가요?¶
islower, isupper을 사용해서 각각 문자열이 소문자로만 이루어져있는지 대문자로만 이루어져있는지를 판별가능하다.
words = ["a","abc","aBc","B","ABC"]
for w in words :
print("Result for",w,"islower() :",w.islower())
for w in words :
print("Result for",w,"isupper() :",w.isupper())
Result for a islower() : True Result for abc islower() : True Result for aBc islower() : False Result for B islower() : False Result for ABC islower() : False Result for a isupper() : False Result for abc isupper() : False Result for aBc isupper() : False Result for B isupper() : True Result for ABC isupper() : True
문자열을 다 대문자로, 소문자로¶
upper를 이용하여 문자열의 모든 알파벳을 대문자로 만든다.
"hello world i'm Ken miles".upper()
"HELLO WORLD I'M KEN MILES"
lower은 upper와 반대로 모두 소문자로 만든다.
"hello WORLD i'm Ken miles".lower()
"hello world i'm ken miles"
upper, lower과 더불어서 capitalize, title¶
capitalize는 문장의 맨 앞에만 대문자가 되도록 만들어주고, title은 단어의 맨 앞에만 대문자가 되도록 해준다.
"hello world i'm Ken MIles".capitalize()
"Hello world i'm ken miles"
"hello world i'm Ken MIles".title()
"Hello World I'M Ken Miles"
문자열 좌우 공백 잘라내기¶
strip 을 사용해서 문자열의 좌우 공백을 제거할 수 있다. lstrip,rstrip은 각각 문자열의 좌,우 공백을 제거해 주고, 인자로 문자열이 입력되면 공백대신 그 문자열에 포함된 문자들을 제거해준다.
" hello world ".lstrip()
'hello world '
" hello world ".rstrip()
' hello world'
" hello world ".strip()
'hello world'
'xzyxxyzhellozyx@!!'.strip("xyz!@")
'hello'
문자열 길이 맞추고 정렬하기¶
문자열의 길이를 맞추기 위해 좌, 우에 공백 혹은 지정된 문자를 붙여준다. ljust는 왼쪽 정렬, rjust는 오른쪽 정렬이다.
"abcdefg".ljust(20)
'abcdefg '
"abcdefg".ljust(20,'X')
'abcdefgXXXXXXXXXXXXX'
"abcdefg".rjust(20)
' abcdefg'
center로 가운데 정렬을 할 수 있다.
"abcdefg".center(20)
' abcdefg '
"abcdefg".center(20,'X')
'XXXXXXabcdefgXXXXXXX'
이는 출력을 정돈되게 할 수 있도록 해준다. 출력의 위 두줄과 아래 두줄을 비교해보자.
btc = "Bitcoin","1000"
eth = "Etherium","50"
for coin in [btc,eth]:
print(coin[0],"|",coin[1])
for coin in [btc,eth]:
print(coin[0].ljust(9),"|",coin[1].rjust(5))
Bitcoin | 1000 Etherium | 50 Bitcoin | 1000 Etherium | 50
왼쪽에 0 붙이기¶
rjust로도 할 수 있지만 zfill이란 것도 있다.
"abcdefg".zfill(20)
'0000000000000abcdefg'
for coin in [btc,eth]:
print(coin[0].ljust(9),"|",coin[1].zfill(5))
Bitcoin | 01000 Etherium | 00050
문자열 찾아서 바꾸기¶
replace로 왼쪽에서부터 특정 문자열을 찾아 바꿀 수 있다.
"ababbaaccddabab".replace('ab','xy')
'xyxybaaccddxyxy'
몇개를 바꿀 것인지 설정가능하다.
"ababbaaccddabab".replace('ab','xy',3)
'xyxybaaccddxyab'
문자열에 변수값 넣기¶
다양한 방법이 있지만 format을 사용해보자. {}에 대응하는 값들이 들어간다.
"{} is {} won and {} is {} won".format("apple",1000,"banana",50000)
'apple is 1000 won and banana is 50000 won'
a = "apple"
ap = 1000
b = "banana"
bp = 50000
sentence = "{} is {} won and {} is {} won"
sentence.format(a,ap,b,bp)
'apple is 1000 won and banana is 50000 won'
중괄호에 숫자를 부여해서 들어갈 값을 지정할 수 있다.
sentence = "{2} is {3} won and {0} is {1} won"
sentence.format(a,ap,b,bp)
'banana is 50000 won and apple is 1000 won'
어떤 값이 들어갈 것인지 이렇게도 명시 가능하다.
sentence = "{a} is {aprice} won and {b} is {bprice} won"
sentence.format(a = a,b = b ,aprice = ap,bprice = bp)
'apple is 1000 won and banana is 50000 won'
문자열 앞에 f를 붙이면 format 함수 없이 중괄호 안에 바로 값을 넣어주는것으로도 문자열에 변수값을 자연스럽게 포함시켜줄 수 있다.
s1 = "{a} is {ap} won and {b} is {bp} won"
s2 = f"{a} is {ap} won and {b} is {bp} won" #f 붙여주면?
print(s1)
print(s2)
{a} is {ap} won and {b} is {bp} won apple is 1000 won and banana is 50000 won
문자열에서 찾기¶
find를 사용하면 찾고자 하는 문자열이 처음나온 index를 반환해준다. -1은 찾는 문자열이 없다는 뜻이며, rfind는 뒤에서부터 검색한다.
"apple banana cherry dorazi".find("na")
8
"apple banana cherry dorazi".find("cookie")
-1
"apple banana cherry dorazi".rfind("na")
10
문자열의 존재유무¶
in, not in으로 찾고자 하는 문자열의 존재유무를 간단히 판별할 수 있다.
'cherry' in "apple banana cherry dorazi"
True
'cookie' not in "apple banana cherry dorazi"
True
문자열 쪼개기¶
split으로 문자열을 공백혹은 원하는 문자를 기준으로 쪼갤 수 있다.
"apple banana cherry dorazi".split()
['apple', 'banana', 'cherry', 'dorazi']
"apple,banana,cherry,dorazi".split(',')
['apple', 'banana', 'cherry', 'dorazi']
"AandBandCandD".split('and')
['A', 'B', 'C', 'D']
문자열 합치기¶
join으로 여러 문자열 사이에 특정 문자열을 껴서 합친 문자열을 만들 수 있다.
",".join(["abc","def","ghi"])
'abc,def,ghi'
"XXX".join(["abc","def","ghi"])
'abcXXXdefXXXghi'
아래 파이썬 버전에서 작성된 코드입니다.¶
!python3 -V
Python 3.7.3
'Study > Python' 카테고리의 다른 글
python의 with 구문 (context manager) 한번 보기 (0) | 2021.05.19 |
---|---|
Python에서 AhoCorasick(아호코라식) 알고리즘 구현하기 (0) | 2021.04.17 |
Python에서 Glob으로 파일 혹은 폴더의 경로 불러오기 (0) | 2021.03.26 |
Pytorch Tensor(텐서) 만들기 (0) | 2021.03.23 |
Kaggle에서 Pytorch로 간단한 Mnist 숫자 분류기 만들기 (0) | 2021.03.16 |
댓글