[Python] 리스트에서 공백, 줄바꿈 제거
July 19, 2024
문자열 리스트의 요소들 중에 공백(' '
), 빈문자(''
), 줄바꿈(\n
) 문자들이 포함된 경우가 있는데, 이런 불필요한 문자열들을 제거하여 정리하는 방법에 대해서 알아보겠습니다.
["apple", "banana", " ", "cherry", "\n", "date"]
1. isspace(), strip()을 이용한 방법
isspace()
은 문자열에 공백이 있을 때 true를 리턴하며, strip()
은 문자열의 앞/뒤의 공백을 제거합니다.
빈문자열, 공백 문자, 개행 문자에 대해서 isspace()
은 다음과 같은 결과를 출력합니다.
print("\n".isspace()) # true
print("".isspace()) # false
print(" ".isspace()) # true
이것을 이용하여 아래와 같이 리스트 컴프리헨션과 함께 공백 문자, 줄바꿈 문자를 제거할 수 있습니다.
item.isspace()
: 공백 문자, 개행문자를 필터링item.strip() != ""
: 공백 문자를 필터링
mylist = ["apple", "banana", " ", "cherry", "\n", "date"]
cleaned_list = [item.strip() for item in mylist if not item.isspace() and item.strip() != ""]
print(cleaned_list)
Output:
['apple', 'banana', 'cherry', 'date']
2. filter()를 이용한 방법
isspace(), strip()를 사용하는 것은 동일하지만, 리스트 컴프리헨션 대신에 filter()
함수를 사용하여 다음과 같이 구현할 수 있습니다.
- 모든 리스트 요소에 대해서 문자열 체크를 하고, 필터링하는 로직은 동일
filter()
는 iterator를 리턴하며,list()
로 리스트 객체로 변환
original_list = ["apple", "banana", " ", "cherry", "\n", "date"]
cleaned_list = list(filter(lambda x: not x.isspace() and x.strip() != "", original_list))
print(cleaned_list)
Output:
['apple', 'banana', 'cherry', 'date']
3. 정규표현식을 이용한 방법
정규표현식을 이용하여 \n
문자를 제거하고, filter()
를 사용하여 빈문자열을 정리할 수 있습니다.
[re.sub(r'\s+', '', item) for item in original_list]
:\n
또는 공백 문자(' '
)를 빈문자열(''
)로 변환list(filter(None, cleaned_list))
: 리스트의 빈 문자열을 삭제
import re
original_list = ["apple", "banana", " ", "cherry", "\n", "date"]
cleaned_list = [re.sub(r'\s+', '', item) for item in original_list]
cleaned_list = list(filter(None, cleaned_list)) # 빈 문자열 제거
print(cleaned_list)
Output:
['apple', 'banana', 'cherry', 'date']