如何返回對象列表,而不是在這裏列出。 我想返回測試對象的列表,而不是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 =「」'時,這是一個* class-level *變量,而不是一個實例屬性。你有沒有來自Java這樣的語言?在'__init__'後面,當你寫'self.val = v'時,你創建了一個影射類變量的實例變量。無論如何,'val.lower()'返回一個字符串,它填充地圖返回的列表。地圖是功能性的結構,用於轉換數據,你不應該用它們來改變狀態(儘管你可以如果你真的想要的話)。相反,做一個for循環,對於test_list中的x:x.val = x.val.lower()' –