をストリップを使用するには:どのように私は文字列のリストを取得するにはマップを使用したいのですが、マップ機能で
value = '1, 2, 3'
my_list = list(map(strip, value.split(',')))
が、得た:
NameError: name 'strip' is not defined
期待される結果:my_list=['1','2','3']
をストリップを使用するには:どのように私は文字列のリストを取得するにはマップを使用したいのですが、マップ機能で
value = '1, 2, 3'
my_list = list(map(strip, value.split(',')))
が、得た:
NameError: name 'strip' is not defined
期待される結果:my_list=['1','2','3']
strip
をされますこれらの文字列のそれぞれについて、str.strip()
メソッドへの参照ではなく、まだ変数です。
あなたがここに結合していないstr.strip
方法を使用することができます:あなたは、文字列で指定されたメソッドを呼び出したい場合は
>>> value = '1, 2, 3'
>>> list(map(str.strip, value.split(',')))
['1', '2', '3']
、そしてあなた:任意のstr
インスタンスのために動作します
my_list = list(map(str.strip, value.split(',')))
をそのメソッドをサポートするさまざまな型があります(アンバインドされたメソッド参照は機能しません)。operator.methodcaller()
object:
[v.strip() for v in value.split(',')]
パーフェクトアンサー、まずはマップを使用しています'1,2,3'を[1,2,3]リスト(map(int、value))に変換するが、私は心を変えてマップ上に固定した。しかし、リストの理解はより多くのpythonishです –
あなたはまた、使用して目的を達成するためにlambda
を使用することができます:あなたは出力とにかくリストオブジェクトにしたい場合は 、代わりのmap()
、私は、リストの内包表記を使用したいです:
value.split(",")
の各要素をパラメータx
としてlambda x:x.strip()
に渡され、その後、strip()
メソッドが呼び出される my_list = map(lambda x:x.strip(), value.split(","))
。
'map()'はリストを返しません。おそらく 'list(map(...))'を意味しますか? –
関連:http://stackoverflow.com/questions/12182777/is-there-a-better-way-to-use-strip-on-a-list-of-strings-python –