문자열에 공백으로 구분 된 중복 문자 및 문자 집합을 제거하는 가장 좋은 방법은 무엇입니까?문자열에서 중복 문자 (단어)를 제거하는 가장 좋은 방법은 무엇입니까?
나는이 예를 더 잘 설명 생각 :
foo = 'h k k h2 h'
이 될해야합니다
foo = 'h k h2' # order not important
다른 예 :
foo = 's s k'
이된다 :
foo = 's k'
문자열에 공백으로 구분 된 중복 문자 및 문자 집합을 제거하는 가장 좋은 방법은 무엇입니까?문자열에서 중복 문자 (단어)를 제거하는 가장 좋은 방법은 무엇입니까?
나는이 예를 더 잘 설명 생각 :
foo = 'h k k h2 h'
이 될해야합니다
foo = 'h k h2' # order not important
다른 예 :
foo = 's s k'
이된다 :
foo = 's k'
' '.join(set(foo.split()))
기본적으로 split()는 모든 공백 문자로 분리됩니다. (예를 들어, 탭, 줄 바꿈, 공백) 그래서 당신은 당신이 사용해야 할 공간 만 분할 할 경우
: ''
' '.join(set(foo.split(' ')))
의미 하시겠습니까?
' '.join(set(someString.split()))
이것은 특별한 순서없이 고유 한 공백으로 구분 된 단어입니다.
을 그리고 .join (세트 (someString.split())) 풋 다시 함께 –
+1하지만 S.Lott, 왜 pep8을 싫어합니까 D? –
@Ali A : 코딩의 30 년. PEP 8 년 전에 20 년 이상. 오래된 방귀 새 Trix를 가르 칠 수는 없습니다. –
out = []
for word in input.split():
if not word in out:
out.append(word)
output_string = " ".join(out)
집합을 사용하는 것이 더 길지만 순서는 유지됩니다.
편집 : Nevermind. 나는 중요하지 않은 주문에 관한 질문에서 그 부분을 놓쳤다. 세트를 사용하는 것이 좋습니다.
+1, 순서가 중요 할 때, 당신의 솔루션은 다음과 같다. 좋은. 수색을 최적화 할 더 나은 버전을 줄 수 있습니까? – iammilind
''.join (set (foo.split())) 요즘 더 평범하다. 또한 닫는 괄호가 없습니다. –
고마워요 존, 내 대답을 업데이트했습니다 –
공백에 관한 것 +1 –