オブジェクトのリストを返す方法とここにはリストしません。私は、テストオブジェクトのリストではなくSTRのリストを返したい ...lambda、pythonでオブジェクト配列をマップする - オブジェクトのリストを返す
class test:
val = ""
def __init__(self,v):
self.val = v
def tolower(self,k):
k = k.val.lower()
return k
def test_run():
tests_lst = []
tests_lst.append(test("TEST-0"))
tests_lst.append(test("TEST-1"))
tests_lst.append(test("TEST-2"))
i_want_object_of_test = map(lambda x:x.val.lower(),tests_lst)
if __name__ == '__main__':
test_run()
OUTPUT: [ 'テスト-0'、 'テスト1'、 'テスト-2']
私は、各オブジェクトのvalが小文字に変更されたテストオブジェクトのリストが必要です。
質問が不明です。どんな出力が期待されているのか、どんな出力が得られているのかを明確に述べてください。あなたの現在のコードが出力されていないか、何も印刷されていません... – Julien
テストオブジェクトのリストを返すmap(lambda x:x.val.lower()、tests_lst)が必要です。代わりに文字列のリストを返します。 – digicoder
まず、クラス本体に'val = "" 'を書くと、それはインスタンス属性ではなくクラスレベルの*変数です。 Javaのような言語から来ていますか? '__init__'の後に' self.val = v'と書くと、クラス変数を陰にするインスタンス変数を作成します。とにかく、 'val.lower()'は、マップによって返されるリストを埋める文字列を返します。マップはデータの変換を目的とした機能的な構造であり、状態を変更するためには使用しないでください(本当に必要な場合でも可能です)。代わりにforループを作成します。for x in test_list:x.val = x.val.lower() ' –