小编plx*_*plx的帖子

如何在 Jupyter Notebook 中使用 Cython 声明全局变量?

我有一些变量应该可以在程序中全局访问。由于它们被如此频繁地使用,我正在考虑为它们提供一种类型,据我所知,这种类型可以加快速度。

我无法做到这一点。在 Jupyter Notebook 的一个块中,我有以下内容:

%%cython
cdef int magic_number = 42
Run Code Online (Sandbox Code Playgroud)

在下一个块中,我收到以下错误:

print(magic_number)

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-34-a40fcb730ac3> in <module>()
----> 1 print(magic_number)

NameError: name 'magic_number' is not defined
Run Code Online (Sandbox Code Playgroud)

cpdef也不起作用。如何获取全局变量?

python global-variables cython jupyter-notebook

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

以下代码中使用'或'关键字有什么用?

我无法理解or以下代码中的关键字的使用,该代码取自本网站答案,该答案显示了使用reduce以下方法对列表进行分区的方法:

 def partition(l, p):
     return reduce(lambda x, y: x[not p(y)].append(y) or x, l, ([], []))
Run Code Online (Sandbox Code Playgroud)

我知道如果条件为真,代码将附加到第一个列表,否则它将附加到第二个列表.这部分or x做什么?我试着把它留下来,但我最后说错了TypeError: 'NoneType' object is not subscriptable

python reduce

2
推荐指数
1
解决办法
47
查看次数

fmap与<$>

根据文档<$>是同义词fmap,它们具有以下类型:

(<$>) :: Functor f => (a -> b) -> f a -> f b
fmap :: Functor f => (a -> b) -> f a -> f b
Run Code Online (Sandbox Code Playgroud)

因此,在上面的签名中,我认为他们以相同的顺序接受参数,唯一的区别是一个是中缀而另一个不是.我有两段代码,一个使用fmap,另一个使用<$>.为什么只有前者运行正常?

import Control.Applicative
main :: IO ()
main = do
  [x, y] <- map read . words <$> getLine
  putStrLn $ show (x + y)
Run Code Online (Sandbox Code Playgroud)

这个不会编译:

import Control.Applicative
main :: IO ()
main = do
  [x, y] <- map read . fmap words …
Run Code Online (Sandbox Code Playgroud)

haskell

1
推荐指数
2
解决办法
322
查看次数