小编mer*_*011的帖子

是否可以根据键列表在Python中获取字典的有序"切片"?

假设我有以下字典和列表:

my_dictionary = {1:"hello", 2:"goodbye", 3:"World", "sand":"box"}
my_list = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

是否有直接(Pythonic)方法从列表顺序定义的顺序中获取键是列表中元素的字典中的键值对?

天真的方法只是迭代列表并逐个拉出地图中的值,但我想知道python是否具有相似的字典列表切片.

python

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

为什么"sapply"处理行要比R中的数据帧中的列慢得多?

请考虑以下脚本,我们将调用它Foo.r.

set.seed(1)                                       
x=matrix(rnorm(1000*1000),ncol=1000)              
x=data.frame(x)                                   


dummy = sapply(1:1000,function(i) sum(x[i,]) )    
#dummy = sapply(1:1000,function(i) sum(x[,i]) )  
Run Code Online (Sandbox Code Playgroud)

当第一dummy行被注释掉时,我们将对列进行求和,并且代码在我的机器上运行不到一秒钟.

$ time Rscript Foo.r  

real    0m0.766s
user    0m0.536s
sys     0m0.080s
Run Code Online (Sandbox Code Playgroud)

当第二dummy行被注释掉(并且第一行被注释掉)时,我们对行进行求和,并且运行时间接近30秒.

$ time Rscript Foo.r  

real    0m30.589s
user    0m30.248s
sys     0m0.104s
Run Code Online (Sandbox Code Playgroud)

请注意,我知道的标准功能总结rowSumscolSums,但我使用金额仅作为这个奇怪的不对称的性能行为的一个例子.

r

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

如何在没有空格的Makefile中跨多行中断变量定义?

请考虑以下Makefile

CP = .:${HADOOP_HOME}/share/hadoop/common/lib/hadoop-auth-2.2.0.jar:\
${HADOOP_HOME}/share/hadoop/hdfs/hadoop-hdfs-2.2.0.jar:\
${HADOOP_HOME}/share/hadoop/common/hadoop-common-2.2.0.jar:\
${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.2.0.jar:\
${HADOOP_HOME}/share/hadoop/mapreduce/lib/hadoop-annotations-2.2.0.jar\

all:
    echo $(CP)
Run Code Online (Sandbox Code Playgroud)

运行的输出make

.:/home/hduser/Hadoop/hadoop-2.2.0/share/hadoop/common/lib/hadoop-auth-2.2.0.jar: /home/hduser/Hadoop/hadoop-2.2.0/share/hadoop/hdfs/hadoop-hdfs-2.2.0.jar: /home/hduser/Hadoop/hadoop-2.2.0/share/hadoop/common/hadoop-common-2.2.0.jar: /home/hduser/Hadoop/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.2.0.jar: /home/hduser/Hadoop/hadoop-2.2.0/share/hadoop/mapreduce/lib/hadoop-annotations-2.2.0.jar
Run Code Online (Sandbox Code Playgroud)

观察每个后面都有空格:.

有没有办法CP用换行符定义变量,但没有多余的空格替换每个换行符?

makefile

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

对于无条件跳转指令0xFF,Mod R/M字节有什么含义(如果有的话)?

考虑下面的代码,在32位编译Ubuntu 14.04.2gcc 4.8.2

#include <unistd.h>

int main(){
    _exit(0);
}
Run Code Online (Sandbox Code Playgroud)

如果我打开gdb并运行此代码disas /r _exit,我会得到以下内容.

(gdb) disas /r _exit
Dump of assembler code for function _exit@plt:
   0x080482f0 <+0>:     ff 25 0c a0 04 08       jmp    *0x804a00c
   0x080482f6 <+6>:     68 00 00 00 00  push   $0x0
   0x080482fb <+11>:    e9 e0 ff ff ff  jmp    0x80482e0
End of assembler dump.
(gdb)
Run Code Online (Sandbox Code Playgroud)

英特尔手册告诉我们这ff是操作码JMP,而后四个字节显然是目标地址.在对Intel指令的结构进行一些研究之后,25看起来是一个Mod R/M字节,但是我找不到如何Mod R/M根据JMP指令解释该字节.

我已经阅读了Mod …

x86 assembly

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

在Golang中读取文件时如何跳过文件系统缓存?

假设文件的内容Foo.txt如下.

Foo Bar Bar Foo
Run Code Online (Sandbox Code Playgroud)

考虑以下简短程序.

package main

import "syscall"
import "fmt"


func main() {
    fd, err := syscall.Open("Foo.txt", syscall.O_RDONLY, 0)
    if err != nil {
        fmt.Println("Failed on open: ", err)
    }
    data := make([]byte, 100)
    _, err = syscall.Read(fd, data)
    if err != nil {
        fmt.Println("Failed on read: ", err)
    }
    syscall.Close(fd)
}
Run Code Online (Sandbox Code Playgroud)

当我们运行上面的程序时,我们没有错误,这是正确的行为.

现在,我将该syscall.Open行修改为以下内容.

fd, err := syscall.Open("Foo.txt", syscall.O_RDONLY | syscall.O_SYNC | syscall.O_DIRECT, 0)
Run Code Online (Sandbox Code Playgroud)

当我再次运行程序时,我得到以下(不合需要的)输出.

Failed on read:  invalid argument
Run Code Online (Sandbox Code Playgroud)

我怎样才能正确地传递标志syscall.O_SYNCsyscall.O_DIRECT …

linux caching system-calls go

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

如何在 AWS 的 VPC 中刷新 DNS 条目?

我最近将 VPC 端点添加到了我的 CloudFormation 堆栈中。然后我删除了我的堆栈并尝试重新创建它。

当我尝试重新创建它时,出现以下错误:

private-dns-enabled cannot be set because there is already a conflicting DNS domain for secretsmanager.us-east-2.amazonaws.com in the VPC vpc-63170e0b (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameter; Request ID: b7d28d81-c2c0-4f44-9642-f22171cf513d)
Run Code Online (Sandbox Code Playgroud)

我怀疑错误在这里是因为 VPC 的私有 DNS 仍然有上次创建堆栈时的条目。

有没有办法从 VPC 的私有 DNS 中手动删除条目?

dns amazon-web-services aws-cloudformation amazon-vpc

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

是否可以在运行时禁用 `-XX:+PrintCompilation` 和 `-verbose:gc"`?

如此答案中所建议的,我在运行性能测试时使用以下标志。

  -XX:+PrintCompilation
  -verbose:gc
Run Code Online (Sandbox Code Playgroud)

这对于调试计时阶段发生的 JVM 活动非常有用,但是当我只是计算统计信息并打印有关刚刚运行的基准测试的输出时,输出就没那么有用了。

有没有办法在运行时禁用这些标志中的一个或两个,以便我可以在计时阶段后关闭它们?

java performance jvm jvm-hotspot performance-testing

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

如何将键值对插入蜂巢图?

根据以下教程,Hive具有地图类型.但是,似乎没有一种记录方法可以通过SELECT一些UDF或内置函数将新的键值对插入到Hive映射中.这可能吗?

作为澄清,假设我有一个名为foo单列的表,键入map,命名column_containing_map.

现在我想创建一个新表,它也有一个列,键入map,但我希望每个映射(包含在一个列中)都有一个额外的键值对.

查询可能如下所示:

CREATE TABLE IF NOT EXISTS bar AS
SELECT ADD_TO_MAP(column_containing_map, "NewKey", "NewValue") 
FROM foo;
Run Code Online (Sandbox Code Playgroud)

然后该表bar将包含与表相同的映射,foo除了每个映射bar将具有另外的键值对.

hive

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

将std :: unique_ptr转换为std :: unique_ptr到超类的正确方法是什么?

假设我有一个被称为foo继承自类的类bar.

我有一个std::unique_ptr实例,foo我想将它传递给一个只需要的函数std::unique_ptr<bar>.如何转换指针使其在我的函数中工作?

c++ c++11

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

为什么Java编译器会抱怨显式导入名称冲突而不是导入包.*?

以下代码编译并正确运行.

import java.util.*;
import java.io.*;



class Scanner {
    public Scanner(InputStream in) {

    }
}
public class Foo{
    public static void main(String[] args) {
        java.util.Scanner in = new java.util.Scanner(System.in);
        System.out.println(in.getClass());

        Scanner in2 = new Scanner(System.in);
        System.out.println(in2.getClass());
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我import java.util.*;改为import java.util.Scanner;,我将得到以下编译器错误.

Foo.java:1: error: Scanner is already defined in this compilation unit
Run Code Online (Sandbox Code Playgroud)

似乎在这两种情况下,编译器应该能够同样消除歧义,那么为什么它只在第二种情况下抱怨呢?

java

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