문자열을 다룰 때 가끔씩 필요없는 공백이 들어간 것들을 볼 수 있습니다.
' Apple'
' A pp l e '
'Apple '
뭐 대체로 이런 것들이죠.
이런 문자열이 하나라면 금방 처리할 텐데, 리스트 안에 들어가 있을 때가 있습니다. 그럴 때 사용하는 방법입니다.
우선은 공백이 포함된 문자열 하나에서 공백을 없애는 방법을 알아보겠습니다.
1. strip()
sample_str = ' Apple '
sample_str = sample_str.strip()
print(sample_str)
>> 'Apple'
2. replace()
sample_str = ' Apple '
sample_str = sample_str.replace(' ', '')
print(sample_str)
>> 'Apple'
보다시피 문자열의 공백을 없애는 방법은 strip과 replace 두 가지입니다. 이 두 방법은 문자열의 필요없는 공백을 없애준다는 점은 같지만, 결정적인 차이점이 있습니다.
# strip과 replace의 차이
sample_str = ' A p pl e '
# strip
print(sample_str.strip())
>> 'A p pl e' # 좌우 공백만 제거
# replace
print(sample_str.replace(' ', '')
>> 'Apple' # 모든 공백 제거
strip은 문자열의 첫 글자의 왼쪽과 끝 글자의 오른쪽에 있는 공백(문자열을 기준으로 좌우 공백)만을 없애주지만, replace의 경우 문자열 내의 모든 공백을 없앨 수 있습니다. 그 이름답게(replace, 대체하다) 모든 필요없는 공백(' ')을 공백 없음('')으로 대체하는 것이기 때문에 가능한 것이죠.
이를 응용하면 리스트 내의 문자열에 있는 필요없는 공백도 문제없이 제거할 수 있습니다.
sample_li = [' fly ', ' to ', 'the ', ' sky']
# list item별 공백 없애기
strip_li = []
for i in sample_li:
i = i.strip() # i.replace(' ', '')
strip_li.append(i)
print(strip_li)
>> ['fly', 'to', 'the', 'sky']
더 깔끔하게 만든 코드는 다음과 같습니다.
# strip
sample_li = [' fly ', ' to ', 'the ', ' sky']
new_li = [i.strip() for i in sample_li]
print(new_li)
>> ['fly', 'to', 'the', 'sky']
# replace
sample_li = [' fly ', ' to ', 'the ', ' sky']
new_li = [i.replace(' ', '') for i in sample_li]
print(new_li)
>> ['fly', 'to', 'the', 'sky']
도움이 되었기를 바랍니다.
'Python > Data Structure' 카테고리의 다른 글
[Python] 이중 리스트 해제하고 1차원 리스트로 만들기 (0) | 2021.02.09 |
---|---|
[Python]int, float 리스트 값들을 str로 한꺼번에 변환하기 (2) | 2021.02.08 |
[Python]리스트 중복 문자열 삭제하기 (0) | 2021.02.02 |
[Python]리스트에서 특정 문자열만 추출하기 (0) | 2021.01.17 |
[Python] 순서가 뒤집힌 리스트 출력하기 (0) | 2020.10.21 |