Python 简洁让我困惑

标签 python

我一直在看Pandas: run length of NaN holes ,特别是评论中的这段代码片段:

Series([len(list(g)) for k, g in groupby(a.isnull()) if k]) 

作为一个 python 新手,我对它的简洁性印象深刻,但不确定如何阅读它。它是类似于

的东西的缩写吗
myList = []
for k, g in groupby(a.isnull()) :
    if k:
        myList.append(len(list(g)))
Series(myList)

为了了解发生了什么,我尝试使用它但出现错误:

list object is not callable

所以运气不太好。

如果有人能阐明这一点,那就太好了。

谢谢, 安妮

最佳答案

你的翻译是正确的。但是,您提供的代码无法运行,因为a 是一个自由变量。

我的猜测是您收到错误是因为您已将列表对象分配给名称 list。不要那样做,因为 list 是列表类型的全局名称。

此外,将来请始终提供完整的堆栈跟踪,而不仅仅是其中的一部分。还请提供足够的代码,至少没有自由变量。

关于Python 简洁让我困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17706939/

相关文章:

python - 如何降低 seaborn 中 x-ticks 的密度

python - 实际上,HRD 中的 "eventual consistency"最终是多少?

python - 如何动态创建新的python类文件?

来自 fileconfig 的 Python 自定义日志处理程序

python - 在分层数据框上添加带有 groupby 的列

python - 为什么 print 不是 python 中的函数?

python - 创建一个 numba 类型列表而不遍历 python 列表

python - 在 Ubuntu 终端中,我怎样才能让 python 程序继续运行?

python - 调用 hub.text_embedding_column 方法时如何修复 "RuntimeError: Missing implementation that supports: loader"?

每次循环后 Python 保存到磁盘的速度变慢