在Python中,我可以这样做:
>>> list = ['a', 'b', 'c']
>>> ', '.join(list)
'a, b, c'
Run Code Online (Sandbox Code Playgroud)
当我有一个对象列表时,有没有简单的方法来做同样的事情?
>>> 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
Run Code Online (Sandbox Code Playgroud)
或者我是否必须求助于for循环?
为什么以及如何运作?例如,我正在写这样的列表理解:
>>> a = (10, 30, 20)
>>> print([q for q in a])
[10, 30, 20]
Run Code Online (Sandbox Code Playgroud)
现在,如果我删除了[],这也可以,但是:
>>> a = (10, 30, 20)
>>> print(q for q in a)
<generator object <genexpr> at 0x7fe527d1dca8>
Run Code Online (Sandbox Code Playgroud)
Python会在这里制作一个生成器吗?如果我这样做没有print():
>>> a = (10, 30, 20)
>>> b = q for q in a
File "<input>", line 1
b = q for q in a
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
我正在考虑因为(q for q in a)会生成一台发电机,但那是不可能的,但是我没有使用两对()像:
>>> a = …Run Code Online (Sandbox Code Playgroud)