小编Vae*_*lus的帖子

Python否定布尔函数

使用lambda函数可以很容易地否定一个python布尔函数,但它有点冗长,并且很难读取基本的东西,例如:

def is_even(n):
    return n % 2 == 0

odds_under_50 = filter(lambda x: not is_even(x), range(50))
Run Code Online (Sandbox Code Playgroud)

我想知道在标准库中是否有一个函数可以执行此操作,它可能如下所示:

odds_under_50 = filter(negate(is_even), range(50))
Run Code Online (Sandbox Code Playgroud)

python standard-library

8
推荐指数
2
解决办法
1721
查看次数

使用 matplotlib 绘制负半径函数的极坐标图

以下 python 代码应在范围 [-pi/2, pi/2] 上绘制 r(theta) = theta。

import matplotlib.pyplot as plt
import numpy

theta = numpy.linspace(-numpy.pi / 2, numpy.pi / 2, 64 + 1)
r = theta

plt.polar(theta, r)
plt.savefig('polar.png')
Run Code Online (Sandbox Code Playgroud)

这产生了情节:

极坐标图

但是,我希望它能产生:

预期极坐标图

r(theta) 的负值似乎被剪裁了。如何使 matplotlib 绘制 r(theta) 的负值?

python matplotlib polar-coordinates

7
推荐指数
1
解决办法
4732
查看次数

有没有办法创建 const &'static CStr?

我没有在标准库中找到任何有关如何制作const &'static CStr. 我尝试制作自己的宏来将&'static str文字转换为&'static CStr

macro_rules! cstr {
    ($e: expr) => {{
        const buffer: &str = concat!($e, "\0");
        unsafe {std::ffi::CStr::from_bytes_with_nul_unchecked(buffer.as_bytes())}
    }}                                                                           
}     
Run Code Online (Sandbox Code Playgroud)

它有几个问题:

  1. 如果expr包含空字节,则会调用未定义的行为
  2. str::as_bytes不是const,所以&CStr不是 const

ffi rust

6
推荐指数
1
解决办法
2822
查看次数

在拇指上方显示修改后的 JSlider 值

有没有一种简单的方法可以在使用某些“外观和感觉”的同时更改 JSlider 上方标签中显示的值?

为了清楚起见,我正在谈论这个值:

在此输入图像描述

具体来说,我想显示除以 1000 的值而不是值本身。

我知道如果我显示它们,我可以为刻度设置标签,但用户将不得不猜测实际值。

我还知道我可以使用此答案删除标签,然后实现我自己的使用滑块更新的标签,但这正是我想要避免的。

考虑到 JSlider 不支持双打,这看起来确实是一个明显的问题。

java swing jslider

4
推荐指数
1
解决办法
4183
查看次数

C++参考变量声明语法推理

例如,C++中的所有其他声明语法都很有意义:

int i;
Run Code Online (Sandbox Code Playgroud)

i 是一个 int

int *i;
Run Code Online (Sandbox Code Playgroud)

i取消引用时,结果是int

int i[];
Run Code Online (Sandbox Code Playgroud)

什么时候i下标,结果是和int

int *i[];
Run Code Online (Sandbox Code Playgroud)

i订阅时,结果是derefrenced,最终结果是int

但是当你看一下参考变量的语法时,这种一致的推理就会崩溃.

int &i = x;
Run Code Online (Sandbox Code Playgroud)

"当i采取地址时,结果是int"没有意义.

我错过了什么,或者这真的是其他sytaxes背后明显推理的例外吗?如果是例外,为什么选择这种语法?

编辑:

这个问题解决了为什么&为此目的而选择符号的问题,而不是为什么是否存在一种通用的一致方式来阅读与上述方式不同的声明.

c++ syntax reference

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