如何将一个可以转换为字符串的对象列表连接成一个字符串?

时间:2015-07-03 18:00:58

标签: python

我有一个具有__str__方法的对象列表。我想获得列表中所有对象的字符串。但当我这样做时(显而易见?)' '.join(my_list)我收到错误TypeError: sequence item 0: expected str instance, LogEntry found

顺便说一句,这样做的目的是简单地为日志条目提供Tkinter列表框内容。如果有更好的方法,请告诉我。但这是我的代码

class LogEntry():
  def __init__(self, msg, type):
     ...
  def __str__(self):
    return self.msg

my_log = [LogEntry("123", WARN), LogEntry("abc", DEBUG) ]

print "\n".join(my_log)

1 个答案:

答案 0 :(得分:2)

使用列表推导在每个对象上列出__str__的结果:

my_log_strs = [str(log) for log in my_log]

map

my_log_strs = map(str, my_logs)

现在你可以:

print "\n".join(my_log_strs)

或者更简洁:

print "\n".join(str(log) for log my_log)