2013-07-12 3 views
3

나는 할 수 없으며, 무엇이 잘못되었는지를 알 수 없습니다. 공백을 제거하려고 시도하는 목록은 다음과 같습니다.문자열에서 공백을 제거합니다.

['L500', ' ', '622651 ', '2007', ' 452295.00', '  7420', ' 0'] 

사이에 공백이 있습니다. 나는 lstrip, rstrip, regex, split, join, replace을 시도했지만 아무런 문제가 없습니다. 목록은 변경되지 않습니다.

for item in row: 
      item.lstrip() 
      item.rstrip() 
      print row 

그건 내 코드입니다. lstrip, rstrip을 내가 언급 한 다른 방법으로 바꿉니다.

저는 파이썬 2.7을 사용하고 있습니다.

+0

을 그리고 당신이 사용하고있는 언어는 무엇인가? 우리에게 말해줘. –

+0

a) 어떤 언어를 사용하고 b) 'L500'과 같이 항목에서 공백을 제거 하시겠습니까? 아니면 배열/목록에서 빈 문자열을 제거 하시겠습니까? –

+1

예제에 공백이 포함되지 않습니까? – Master117

답변

7

파이썬 (및 많은 다른 언어)의 문자열은 변경 불가능합니다. 즉, 문자열에 대한 작업을 수행 할 때 기존 항목을 변경하는 대신 해당 문자열의 새 인스턴스가 반환됩니다. 당신이 원하는 것을하기 위해서, 당신은 목록에있는 항목들을 재배정해야합니다.

row = [x.strip() for x in row] 
+0

감사합니다. 죄송합니다 문자열에 대해 잊어 버린 것은 변경할 수 없습니다. 나는 Python을 처음 사용한다. – KSHMR

4

지능형리스트를 사용

>>> row = map(lambda x: x.strip(), row) 
+0

변수를 재 바인드하지 않으려면 다음을 사용할 수 있습니다.'row [:] = [x in row for]]'. – Matthias

+0

"파이썬 3에서는 생성기를 반환합니다." 아니, 그렇지 않을 것이다. 목록을 반환합니다. – DSM

+0

그럼 내가 ... 너는 맞을거야 – mishik

3

그냥 다른 방법 :

for index, item in enumerate(row): 
    row[index] = item.strip() 
+1

'row = map (str.strip, row)'이 훨씬 빠르다. – Kiro

관련 문제