2011-10-10 3 views
-8

나는 문자열 목록을 가지고 있지만 각 문자열에는 중복이 필요하다. f.e :목록 내의 문자열에서 중복을 제거하는 방법은 무엇입니까?

lst = ('word1 2 36 2 2' ' word2 96 5 5 5 14' 'word3 45 6 45 45') 

I이 필요합니다 일반적으로

lst = ('word1 2 36' 'word2 96 5 14' 'word3 45 6') 
+1

이 어쨌든 파이썬'list's처럼하지 않지만, 어떤 알고리즘의 일부 문제가 발생할 수 있습니다 ? 지금까지 시도한 것을 보여 주시면 도와 드리겠습니다. – Johnsyweb

답변

3

:

  1. 각 키 단어 n
  2. 에 대한 dictionary 만들기 새로운 각 키의 목록과 그 설정의 내용
+0

OP의 이전 질문 중 하나에 [이 답변] (http://stackoverflow.com/questions/7706621/how-to-insert-duplicated-values-in-dictionary/7706691#7706691)과 약간 소리가납니다. – Johnsyweb

0

귀하의 질문을 구축 사전을 통해 set

  • 반복이 키 변환 항목 listN을 통해 매우 명확하지 않고, 작성한대로 "목록"은 목록이 아니라 문자열입니다. 아마도 튜플로 만들려고 했겠지 만 항목 사이에 쉼표가 필요합니다. 다음 예에서

    , 우리는 set에 항목을 추가 할 문자열 join 다시 함께 참여하고, 실제리스트에게 (우리의 출력 목록에이 시간을 추가, 항목을 반복 문자열 split() 기능을 분할) :

    이 지능형리스트보다 컴팩트하게 쓸 수
    >>> lst = ('word1 2 36 2 2', ' word2 96 5 5 5 14', 'word3 45 6 45 45') 
    >>> out = [] 
    >>> for item in lst: 
    ... tokens = item.split() 
    ... s = set(tokens) 
    ... joined = " ".join(s) 
    ... out.append(joined) 
    ... 
    >>> out 
    ['2 word1 36', '96 5 14 word2', '45 word3 6'] 
    

    :

    >>> lst = ('word1 2 36 2 2', ' word2 96 5 5 5 14', 'word3 45 6 45 45') 
    >>> out = [" ".join(set(item.split())) for item in lst] 
    >>> out 
    ['2 word1 36', '96 5 14 word2', '45 word3 6'] 
    
  • +0

    예 죄송합니다. 쉼표를 잊어 버렸 습니다만, 주문을 유지해야 할 필요가 있습니다. 단어가 중복되지 않으므로 이전과 동일한 순서로 번호가 매겨 져야합니다. 번호 만 입력하면됩니다. 왼쪽에서 숫자와 중복을 제거 – user986761

    +0

    그런 다음 Alex가 쓴 것을하십시오. – beerbajay

    +0

    또한 게시물에 뭔가를하고 싶은 이유를 설명해야합니다. 당신의 질문이 엉성하고 문맥을주지 않기 때문에 당신은 많은 downvotes를 얻고 있습니다. 정말로 끈이 다시 필요합니까? 그렇다면 왜? 왜 주문을해야합니까? 무엇을 지금까지 시도해야합니까? 큰 그림을 설명하면 더 유용한 대답을 얻을 수 있습니다 (예 : 좁은 질문에 "틀린"질문에 답하는 것보다는 뭔가를 가르쳐주는 답변). – beerbajay

    관련 문제