我可以加入课程列表吗?

时间:2012-01-11 16:41:51

标签: python string class join generator

我需要从具有.__str__()方法的类列表中获取一个字符串。

所以魔药是一个类药水的对象列表。药水__str__方法只返回药水的名称。 我想过做这样的事情

result = "\n".join(potions)

但只能连接字符串,我不知道如何为连接中的每个类调用__str__()

或者我应该做这样的事情:

for potion in potions:
    result += "{0}\n".format(potion)

或者可能是别的什么?

2 个答案:

答案 0 :(得分:7)

result = "\n".join(str(potion) for potion in potions)

也就是说,使用生成器表达式(也可以使用列表推导 -

result = "\n".join([str(potion) for potion in potions])

str()中的每个potion致电potions

答案 1 :(得分:3)

稍微短一点的解决方案:

result = "\n".join(map(str, potions))