2010-11-20 3 views
3

私は次の操作を行うための最も神託の方法は何か疑問に思って、それが動作していますのpython不変タイプを変更

strings = ['a','b'] 

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

を明らかにこれはpythonで動作しませんが、私はacheiveしたい結果が
文字列= [「交流」、「BC」]
結果、この種のを達成するためにいただきまし最も神託の方法は何ですか?偉大な答えを

ありがとう! [s + 'c' for s in strings]

答えて

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

または 'strings [:] = ..'既存のリストを変更する –

3

あなたはこれらの値を持つリストを作成するには、リストの内包表記を使用することができます。あなたはこのように、インプレースのリストを変更できます。

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

そうです、コードを修正しました。 –