我试图在一行中的Python字典中创建一个完整的图形.但是当创建值的列表理解时,我无法弄清楚如何指定key_value不能出现在值列表中(在图中说,没有自循环).
对于n个节点
G = {k:[v for v in range(n)] for k in range(n) }
Run Code Online (Sandbox Code Playgroud)
结果如此(例子n = 3)
{0: [0, 1, 2], 1: [0, 1, 2], 2: [0, 1, 2]}
Run Code Online (Sandbox Code Playgroud)
但我想要的是这个
{0: [1, 2], 1: [0, 2], 2: [0, 1]}
Run Code Online (Sandbox Code Playgroud)
但尝试类似的东西
G = {k:[v for v in range(n) for v !=k] for k in range(n) }
Run Code Online (Sandbox Code Playgroud)
将在列表理解中的k处抛出错误.所以k必须超出列表理解的范围,这是有道理的.
可以用这种方法定义G吗?
我跟着讲座,讲师正在使用Eclipse,但我正在使用IntelliJ IDEA Community Edition 15.0.6,而名为rationals.scala的Scala工作表上的代码如下
object rationals{
val x = new Rational(1,2)
x.numer
x.denom
}
//noinspection ScalaPackageName
class Rational(x: Int, y: Int) {
def numer = x
def denom = y
}
Run Code Online (Sandbox Code Playgroud)
Scala工作表工作表将不会计算,并且存在与读取的类定义关联的警告(而不是错误)
包名称与目录结构不对应,这可能会导致解析此文件中的类时出现问题
此外,这是奇怪的,但可能很重要,IDEA标志着numer和denom作为拼写错误.
任何指导?谢谢
Fedora 25. sbt 已安装,我一直在使用它,可能上次是一周前。但是今天没有找到。
$ sbt
bash: sbt: command not found...
Install package 'sbt' to provide command 'sbt'? [N/y]
Run Code Online (Sandbox Code Playgroud)
尝试重新安装,但 dnf 知道我在做什么
$ sudo dnf install sbt
[sudo] password for xxx:
Last metadata expiration check: 0:31:12 ago on Thu Apr 27 19:39:34 2017.
Package sbt-0.13.15.2-2.noarch is already installed, skipping.
Dependencies resolved.
Nothing to do.
Complete!
Run Code Online (Sandbox Code Playgroud)
检查安装位置,但没有运气
$ which sbt
/usr/bin/which: no sbt in (/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/xxx/.local/bin:/home/xxx/bin)
Run Code Online (Sandbox Code Playgroud)
我猜问题出在我的 $PATH 中,但是我没有改变它,尽管我已经安装了一些软件包
$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/xxx/.local/bin:/home/xxx/bin
Run Code Online (Sandbox Code Playgroud)
最后,我确实在 /usr/share/sbt/bin/ 中找到了一个名为 sbt-launch.jar 的 jar,但我认为 /usr/share 从来没有成为我的 $PATH …
我昨天重新安装了 Fedora 23。我按照https://jupyter.readthedocs.org/en/latest/install.html 上的说明安装了 Jupyter,这意味着我这样做了
pip install jupyter
Run Code Online (Sandbox Code Playgroud)
Python 2 似乎运行起来很有趣。我尝试按照此处的说明添加对 Python 3 内核的支持在 IPython Notebook 中使用 Python 2.x 和 Python 3.x,这意味着我遵循了这些说明http://jupyter。 cs.brynmawr.edu/hub/dblank/public/Jupyter%20Help.ipynb#1.4.2-Enable-Python-3-kernel。
我重新启动了服务器,打开了一个新的 Python 3 notebook,然后看着内核在 3 秒后死亡。
对我来说很明显,没有使用 Anaconda 在 Linux 上的 Jupyter 中运行 2 和 3 的文档很少。我们能否让它成为以 Fedora Linux 为中心的,没有 Anaconda 线程?
Fedora 23,Python 2.7.10 / 3.4.3
谢谢
在R中,当你想加载一个库时,例如调用一个foo,命令是
library(foo)
Run Code Online (Sandbox Code Playgroud)
此呼叫是否有返回值表示成功/失败?我想使用如下
if library(foo) != 1:
install.packages("foo")
Run Code Online (Sandbox Code Playgroud)
谢谢
请原谅这个似乎是之前回答过的问题,但如果我阅读 10 篇不同的帖子,我会发现 20 种不同的答案。
我刚刚安装了 Fedora 25。我要学习 Java 开发,需要设置我的环境。我将使用 openjdk 并安装了 java-1.8.0-openjdk-devel。我还将使用 Maven。
现在我需要设置我的$PATH和$JAVA_HOME变量。
我尝试了在这里找到的答案(Fedora OpenJDK Set JAVA_HOME)
但添加到我的 .bashrc 之后
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
Run Code Online (Sandbox Code Playgroud)
然后测试,我得到了在我看来是错误的答案,因为我认为末尾不应该有 /jre/
> echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.121-1.b14.fc25.x86_64/jre/
Run Code Online (Sandbox Code Playgroud)
请问我应该将 JAVA_HOME 设置为多少,这样我就不需要在每次 openjdk 更新时都更新它?
之后我认为 PATH 只是
export PATH=$JAVA_HOME/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
这看起来是一件很简单的事情,但在我看来却有很多困惑。谢谢
PS 另外,.bashrc 是正确的位置吗?因为我在这里看到(https://askubuntu.com/questions/175514/how-to-set-java-home-for-java)/etc/environment会更合适)谢谢
这是一个编译和运行的明显简单的示例。
#include <iostream>
#include <vector>
using namespace std;
class Shape {
public:
virtual double getArea() = 0;
};
class Circle : public Shape {
public:
double getArea() {return 3.14;}
};
class Rectangle : public Shape {
public:
double getArea() {return 42.0;}
};
int main() {
vector<Shape*> shapes = {new Circle(), new Rectangle()};
for (Shape* s : shapes) { cout << s->getArea() << endl;}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果是它将打印向量中的每个形状。
我不知道该怎么做是按派生类类型过滤向量。例如,如何迭代向量并只对每个 Circle 执行某些操作?
谢谢
我正在 R 中做一个简单的散点图,当我尝试使用 colorbrewer 调色板“RdBu”时,我得到了明显不同的东西,但我不知道为什么。
这是我的数据摘要
> summary(d$Year)
Min. 1st Qu. Median Mean 3rd Qu. Max.
1880 1914 1947 1947 1980 2014
> summary(d$NHem)
Min. 1st Qu. Median Mean 3rd Qu. Max.
-52.000 -21.500 -2.000 3.326 16.000 91.000
> summary(d$NHem.bin)
-3 -2 -1 0 1 2 3 4 5
1 23 28 37 22 4 8 11 1
Run Code Online (Sandbox Code Playgroud)
当我使用命令时
ggplot(d, aes(x=Year, y=NHem, colour=NHem.bin)) + geom_point() + scale_fill_brewer(palette = "RdBu")
Run Code Online (Sandbox Code Playgroud)
我明白了
所以这显然不是“RdBu”。我究竟做错了什么??
另外,我正在创建一个 bin var,以便我可以尝试在 3 个独立的图中保持相同的梯度。
既然我已经在这里了,我如何反转比例,使蓝色端对应于更多的负数,红色端对应于更多的正数?
谢谢