在Python中,我可以做到:

>>> list = ['a', 'b', 'c']
>>> ', '.join(list)
'a, b, c'

当我有一个对象列表时,有没有简单的方法可以做到这一点?

>>> class Obj:
...     def __str__(self):
...         return 'name'
...
>>> list = [Obj(), Obj(), Obj()]
>>> ', '.join(list)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, instance found

还是我必须求助于for循环?

推荐答案

您可以使用列表理解或生成器表达式:

', '.join([str(x) for x in list])  # list comprehension
', '.join(str(x) for x in list)    # generator expression

Python相关问答推荐

Inquirer库不适用于Pyterfly

如何最好地处理严重级联的json

仅使用2种 colored颜色 创建热图

在Python中添加期货之间的延迟

单击Python中的复选框后抓取数据

将嵌套列表的字典转换为数据框中的行

如果我已经使用了time,如何要求Python在12秒后执行另一个操作.sleep

使用Python和PRNG(不是梅森龙卷风)有效地生成伪随机浮点数在[0,1)中均匀?

使文本输入中的文本与标签中的文本相同

具有症状的分段函数:如何仅针对某些输入值定义函数?

如何计算列表列行之间的公共元素

比较2 PD.数组的令人惊讶的结果

max_of_three使用First_select、second_select、

如果值不存在,列表理解返回列表

加速Python循环

OR—Tools中CP—SAT求解器的IntVar设置值

在Python中,从给定范围内的数组中提取索引组列表的更有效方法

如何更改groupby作用域以找到满足掩码条件的第一个值?

在输入行运行时停止代码

合并与拼接并举