我使用社区pycharm,python的版本是3.6.1,django是1.11.1.此警告对运行没有影响,但我无法使用IDE的自动完成.
我一直在使用此处描述的 Google Docstring 格式,但我想知道是否有一种商定的方法来记录已知类型的列表。
我一直在用
def function(a_list)
"""
Args:
a_list (list[dict]): a list of dictionaries
"""
...
Run Code Online (Sandbox Code Playgroud)
这样对吗?
给定一些可以返回 None 或另一个值的函数以及一个值列表:
def fn(x):
if x == 4:
return None
else return x
lst = [1, 2, 3, 4, 5, 6, 7]
Run Code Online (Sandbox Code Playgroud)
我想要一个fn()不返回 None的输出列表
我有一些有效的代码,如下所示:
output = []
for i in lst:
result = fn(i)
if result:
output.append(result)
Run Code Online (Sandbox Code Playgroud)
我可以将其表示为列表理解,如下所示:
output = [fn(i) for i in lst if fn(i)]
Run Code Online (Sandbox Code Playgroud)
但它运行fn(i)任何不返回None两次的东西,如果fn是一个昂贵的函数,这是不可取的。
有没有办法在不运行函数两次的情况下获得很好的pythonic理解?
一个可能的解决方案:
output = [fn(i) for i in lst]
output = [o for o in f if o]
Run Code Online (Sandbox Code Playgroud)