如何返回对象列表,而不是在这里列出。 我想返回测试对象的列表,而不是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()' –