是否有理由更喜欢使用map()超过列表理解,反之亦然?它们中的任何一个通常比另一个更有效或被认为是更加pythonic?
在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循环?
Pylint 抱怨内置引用,但有什么替代方法?
到目前为止,我所看到的答案只是让 Pylint 在内置函数方面保持安静。必须有其他调用方式round(),也许在标准导入库中?使用内置函数有什么潜在问题吗?
我对这些答案的搜索只提供了几十个关于使用内置函数的教程。
用法与 with 无关round()。这会触发警告:
n = 0.05
n = round(n)
Run Code Online (Sandbox Code Playgroud)
确切的警告只出现在 VS Code 中,它是:
{
"resource": "/C:/Users/neil.obremski/project/file.py",
"owner": "python",
"code": "round-builtin",
"severity": 4,
"message": "round built-in referenced",
"source": "pylint",
"startLineNumber": 434,
"startColumn": 9,
"endLineNumber": 434,
"endColumn": 9
}
Run Code Online (Sandbox Code Playgroud)
更新:这--enable=W会在 Pylint 参数中设置时显示。它绝对适用于该函数的任何使用round(),包括指定第二个参数。
这是 Pylint 输出的样子pylint file.py --enable=W:
file.py:435:18: W1633: round built-in referenced (round-builtin)
Run Code Online (Sandbox Code Playgroud)