小编Eri*_*lum的帖子

PyCharm中类''的未解析属性引用'对象'

我使用社区pycharm,python的版本是3.6.1,django是1.11.1.此警告对运行没有影响,但我无法使用IDE的自动完成.

python django pycharm

41
推荐指数
5
解决办法
2万
查看次数

列表的正确 Google 文档字符串

我一直在使用此处描述的 Google Docstring 格式但我想知道是否有一种商定的方法来记录已知类型的列表。

我一直在用

def function(a_list)
    """

    Args:
        a_list (list[dict]): a list of dictionaries
    """
    ...
Run Code Online (Sandbox Code Playgroud)

这样对吗?

docstring python-2.7

5
推荐指数
1
解决办法
1572
查看次数

以函数作为输出和条件的 Python 列表推导式

给定一些可以返回 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)

python list-comprehension list

5
推荐指数
1
解决办法
1396
查看次数