2014-04-26 6 views
3

문자열에서 인덱스 목록을 제거하기위한 좋은 방법과 짧은 방법은 무엇입니까?문자열의 여러 인덱스를 제거하십시오.

인덱스에서 char을 제거하면 문자열의 인덱스가 이동합니다. 이 경우 목록의 모든 색인을 이동해야합니다. 이것이 올바른 방법일까요? 아니면보다 직접적인 접근 방식이 있습니까?

+0

문자열에서 문자를 제거하는 방법을 묻는 중입니까? – skzryzg

+0

생각을 사용하면 문자열의 끝에서 색인을 생성하는 음수 색인을 사용하거나 처음부터 마지막으로 제거하면 교대를 다루지 않아도됩니다. –

+0

@JoachimIsaksson 마지막에서 처음으로 이동하는 것을 피하는 것이 좋습니다. – embert

답변

6

문자열을 변경할 수 없습니다. 따라서 요소를 삭제하면 작동하지 않습니다. 세트 빠르게 제공하기 때문에

data = "Welcome" 
del data[0] 
# TypeError: 'str' object doesn't support item deletion 

가장 좋은 방법은 indexes 숫자의 집합이라고이

data, indexes = "Welcome", {1, 3, 5} 
print "".join([char for idx, char in enumerate(data) if idx not in indexes]) 
# Wloe 

주와 같은 특정 인덱스의 요소없이 문자열을 재구성하고 함께 참여하는 것입니다 목록보다 조회. [1, 3, 5]과 같은 숫자 목록이 있고이를 세트로 변환하려면 set 함수를 사용하십시오. set([1, 3, 5])

+1

왜 이것이 최선의 방법입니까? – MxyL

+0

@MxyL 이것은 직설적이고 덜 복잡한 방법입니다. – thefourtheye

+0

Downvoter, 나는 무엇이 잘못되었으며이 대답을 향상시킬 수 있는지 알고 싶습니다. 나에게 설명해주십시오. – thefourtheye

관련 문제