2017-02-03 2 views
1

원래 문자열 목록의 요소 (목록에서) 여러 부품을 교체하는 방법 :파이썬, 목록

Originals = ["nice apple", "orange", "pear sweet", "red ape"] 

문자열의 목록을 제거합니다 :

To_remove = ["nice ", " sweet"] 

을 내가 원하는 무엇 달성하기 위해 원래 단어의 각 요소에서 제거해야하는 문자열을 제거하는 것입니다

result: ["apple", "orange", "pear", "red ape"] 

나는 다음과 같이하지만 좋은 결과를 내지는 못합니다. 결과.

for t in To_remove: 
    for o in Originals: 
     print o.replace(t, "") 

올바른 방법은 무엇입니까? 고맙습니다.

+1

*'그러나 좋은 결과를 내지 못합니다. '* - ** ** 무엇을 볼 수 있습니까 **? 우리를 보여주세요! – Wolf

+0

질문 제목은 매우 혼란 스럽습니다. 실제 필요에 맞게 단어를 다시 말해야합니다. – Wolf

+0

잡는 제목에 대한 제안 : ** Howto "censor"문자열리스트를 파이썬으로 작성 하시겠습니까? ** :-) – Wolf

답변

3

문자열을 변경할 수 없습니다. 따라서 문자열에서 호출 할 수있는 메서드는 모두 내부 수정을 수행하지 않습니다. 그들은 모두 새로운 문자열을 반환, 그래서 당신은 replace에 의해 반환 된 문자열을 다시 지정해야합니다 :

for t in To_remove: 
    for i in range(len(Originals)): 
     Originals[i] = Originals[i].replace(t, "") 

여러 패턴의 교체를 병합하는 방법이 question을 확인 할 수 있습니다.

+0

에서 빠져 있습니다. 팁과 PEP8 표준을 사용하는 경우에는 다음을 사용하십시오. 뱀 케이스. – wencakisa

+0

@Wencakisa OP (see *'snake case' *) – Wolf

+0

@schwobaseggl, 고마워요! –

3

문자열이 불변이므로 목록 요소를 다시 지정해야합니다.

for t in To_remove: 
    for i, o in enumerate(Originals): 
     Originals[i] = o.replace(t, "") 

print Originals 

희망이 도움이됩니다.

+0

가르침에 감사드립니다. 아주 좋아! 당신이 마음에 들지 않기를 바랍니다. 대답을 위해 처음으로 대답을 선택하십시오. –

+0

저는 * print originalals * 아이디어가 마음에 들었습니다.이 부분은 OP – Wolf

1

대체 결과를 인쇄하지만 목록 내용은 변경하지 마십시오. replace method (문자열의 경우 (!))에 대해 자세히 살펴보면 목록을 변경하는 것뿐만 아니라 for o in Originals 문자열을 변경하지 않는 것을 알 수 있습니다. schwobasegglthangtn[1]이 이미 제공하고 있기 때문에 작업 예제는 생략합니다.


[1] 첫번째 정말로? SO 타임 스탬프는 개인적인 경험과 모순됩니다.

+0

지식을 주셔서 감사합니다. –

+0

BTW : [공식 문서] (https : //docs.python .org/3/library/stdtypes.html # str.바꾸기) 매우 드문 경우, 어쩌면 당신이 그렇게 나쁜 구글 결과를 가지고 이유입니다. – Wolf

1
Originals = ["nice apple", "orange", "pear sweet", "red ape"] 
To_remove = ["nice ", " sweet"] 
result = [] 

for o in Originals: 
    for t in To_remove: 
     result.append(o.replace(t, "")) 

print result 

그게 필요한가요?

+0

도움에 감사드립니다. –

+0

더 많은 텍스트는 이미 알려진 반복의 목적을 이해하는 데 도움이 될 수 있습니다. – Wolf

+0

... 나는 이것을 (* 반복과 관련해서) * 정정해야한다. 유효한 옵션. – Wolf