2010-11-20 4 views
3

다음 작업을 수행 할 수있는 가장 파이썬 방법이 무엇인지 궁금하고 작업 한 :파이썬 불변의 유형을 변경

strings = ['a','b'] 

for s in strings: 
    s = s+'c' 

를 분명히이 파이썬에서 작동하지 않습니다하지만, 내가 습득하고자하는 결과는
입니다. strings = [ 'ac', 'bc']
이런 종류의 결과를 얻으려면 가장 비범 한 방법은 무엇일까요?

대단한 답변을 보내 주셔서 감사합니다.

답변

6
strings = ['a', 'b'] 
strings = [s + 'c' for s in strings] 
+0

또는 기존 목록을 변경하려면'strings [:] = ..' –

3

목록 이해를 사용하여 [s + 'c' for s in strings] 값을 갖는 목록을 만들 수 있습니다. 당신은 다음과 같이 현재 위치에서 목록을 수정할 수 있습니다

for i, s in enumerate(strings): 
    strings[i] = s + 'c' 

그러나 나는 꽤 자주에 적절한 수정이 필요하지 않은 것을 발견했다. 이 코드가 적용되는지 확인하려면 코드를 살펴보십시오.

1

지도 기능을 사용할 수 있습니다.

strings = ['a', 'b'] 
strings = map(lambda s: s + 'c', strings) 
+1

'map'의 반환 값을 가져 왔는지 확인하십시오. – robert

+0

네, 맞습니다. 코드를 수정했습니다. –