# 문자열 객체를 생성
emptyString = ''
print(len(emptyString))
결과)0
# 문자열 객체 결합string1 = 'pine'string2 = 'apple'strings = string1 + string2print(strings)
결과)pineapple
# 문자열 객체는 str 객체이다.fruitName = 'apple'print(type(fruitName))
결과)<class 'str'>
# 시작 위치부터 두 개 요소를 추출
fruitName = 'apple'print(fruitName[:2])
결과)ap
# 시작 요소 부터 2개씩 추출fruitName = 'watermelon'print(fruitName[::2])
결과)wtreo
# 시작 요소 부터 마지막 요소 에서 5개를 제외한 요소까지 추출fruitName = 'watermelon'print(fruitName[:-5:])
결과)water
# 슬라이스 파라미터의 의미 (1st: 시작, 2nd: 끝, 3rd: 건너뛰기)s = 'banana'print(s[1:6:2])
결과)aaa
# 2nd 파라미터는 끝 위치를 지정하므로 건너뛰기도 끝 위치 내에서만 작동한다.s = 'banana'print(s[1:5:2])
결과)aa
# 2nd 파라미터가 무효한 값이면 유효한 값으로 작동한다.
s = 'banana'print(s[1:100])
결과)anana
# 문자열 뒤집기s = 'hello'print(s[::-1])
결과)olleh
# -1 트릭이 아닌 for - loop을 이용한 문자열 뒤집기
nums = [1, 2, 3, 4, 5]
reverse_nums = []
for idx in range(len(nums), 0, -1):
reverse_nums.append(nums[idx])
print(reverse_nums)
# 결과
[5, 4, 3, 2, 1]
# 문자열이 대상의 요소인지 아닌지 리턴한다.
l = ['a', 'b', 'c']
print(str('a' in l))
결과)
True
# 중첩 리스트까지 체크하지는 않는다.
sl = ['d', 'e', 'f']
l = ['a', 'b', 'c', sl]print(str('f' in l))
결과)
False
# 멤버쉽 체크 대상을 명확하게 지정하면 요소 체크가 가능하다.
sl = ['d', 'e', 'f']
l = ['a', 'b', 'c', sl]
print(str('f' in l[3]))
결과)
True
# 스트링에 대한 인덱스 읽어오기
s = 'hello'
print (s[-1:])
결과)
o
# 스트링에 대한 인덱스 할당은 가능하지 않다.
s = 'hello'
s[-1:] = 'y'
결과)
TypeError: 'str' object does not support item assignment
# 할당 대신에 읽어내어 원하는 형태를 더해준다.
s = 'hello'
print(s[:-1] + 'y')
결과)
helly
# split() 메쏘드
s = 'pine_apple'parts = s.split('_')print(parts)
결과)['pine', 'apple'] # split() 메쏘드는 리스트를 리턴한다.
# '/' 구분자의 사용s = 'super/man'parts = s.split('/')print(parts)
결과)['super', 'man']
# join() 메쏘드s = 'super/man'parts = s.split('/')original_s = '/'.join(parts)print(original_s)
결과)super/man
# 매우 자주 사용되는 리스트를 스트링으로 변환하는 트릭l = ['I am', ' a list']s = ''.join(l)print(s)print(type(s))결과)I am a list<class 'str'>
# strip() 메쏘드의 사용 #1
s = ' superman 'sStriped = s.strip()print(sStriped)
결과)superman
# strip() 메쏘드의 사용 #2
s = '#### superman'sStriped = s.strip('# ')print(sStriped)
결과)superman
# 문자열 포맷팅을 신경쓰지 않고 보이는 그대로 출력
s = '''\this is astring line andmany others'''
print(s)
결과)this is astring line andmany others
# 출력간에 개행이 아닌 원하는 세퍼레이터 넣기for i in range(1, 11):print(i, end=' ')
결과)1 2 3 4 5 6 7 8 9 10
### List를 String으로 바꾸는 방법
def main():
# 방법 1
ls = ['we', 'are', 'hero']
print(ls, end=' ') ; print('->', end=' ') ; print(' '.join(ls))
print('\t')
# 방법 2
ln = [1, 2, 3]
print(ln, end=' ') ; print('->', end=' ') ; print(' '.join(map(str, ln)))
print('\t')
# 방법 3
ln = [1, 'test', 3]
print(ln, end=' ') ; print('->', end=' ') ; print(' '.join(map(str, ln)))
print('\t')
# 방법 4
lw = ['Wow', 'very', 'nice', 100]
strs = ''
for el in lw:
strs += str(el) + ' '
print(lw, end=' ') ; print('->', end=' ') ; print(strs.rstrip())
pass
if __name__ == '__main__':
main()
# 결과
['we', 'are', 'hero'] -> we are hero
[1, 2, 3] -> 1 2 3
[1, 'test', 3] -> 1 test 3
['Wow', 'very', 'nice', 100] -> Wow very nice 100
# 요소 타입이 다른 리스트를 string 변환하고
# 특정 요소만 제거
non_homogeneous_list = [1, None, '2', None, 3]
ret = [n for n in non_homogeneous_list if n != None]
string_output = '/'.join(map(str, ret))
print(non_homogeneous_list, end=' ')
print('->', end=' ')
print(string_output)
# 결과
[1, None, '2', None, 3] -> 1/2/3
댓글 영역