小编Jör*_*ees的帖子

为什么collections.OrderedDict使用try和except来初始化变量?

下面是collectionsPython 2.7中模块的源代码.我对OrderedDict初始化__root变量的方式感到困惑.为什么使用它tryexcept,有必要吗?为什么不能只使用它

self.__root = root = []                     # sentinel node
root[:] = [root, root, None]
self.__map = {}
self.__update(*args, **kwds) 
Run Code Online (Sandbox Code Playgroud)

初始化self.__root

非常感谢 ...

class OrderedDict(dict):
'Dictionary that remembers insertion order'
# An inherited dict maps keys to values.
# The inherited dict provides __getitem__, __len__, __contains__, and get.
# The remaining methods are order-aware.
# Big-O running times for all methods are the same as regular dictionaries.

# …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 python-internals

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

git:从某个提交开始发布,将早期历史保密,但可证明

我已经在库上进行了一段时间的黑客攻击,并且在我的private存储库中有很多提交:

A -> B -> C -> D -> E
Run Code Online (Sandbox Code Playgroud)

最后,我即将完成第一个版本,并希望将其发布到一个远程调用publicD然后保留A..C给我自己,所以public之后应该看起来像这样:

D -> E
Run Code Online (Sandbox Code Playgroud)

根据需要,我希望能够证明我是如何到达的D(想想版权声明等)。由于(目前)几乎不可能用时间和变更集对链中的提交哈希进行逆向工程,我认为只保留D的父指针C将是 git 的天才优势之一。可悲的是,我找不到一种方法来实际完成这项工作。

所以,我怎么能推D -> Epublic使其成为一个功能齐全的公共仓库与所有包含结账所需的对象DED仍指向C父?

什么不起作用:

用范围推动

git push public D..E:master
error: src refspec D..E does not match any.
error: failed to push some refs to '<public>'
Run Code Online (Sandbox Code Playgroud)

任何形式的挤压/历史重写

据我所知,压缩A..D会引入一个新的提交,删除指向的父指针C,从而消除A..C. (简单的例子:说C …

git git-rebase

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

SPARQL:两个节点之间有路径吗?

是否存在一种良好的SPARQL查询,如果两个给定节点连接在单个/多个SPARQL端点上,我们可以回答这个问题吗?

假设我想检查两个节点

<http://wiktionary.dbpedia.org/resource/dog>
Run Code Online (Sandbox Code Playgroud)

<http://dbpedia.org/resource/Dog>
Run Code Online (Sandbox Code Playgroud)

连接了.如果是的话,我会对这条路感兴趣.

通过猜测我已经知道它们是通过标签连接的,所以像这样的查询返回长度为3的路径:

SELECT * WHERE {
  <http://wiktionary.dbpedia.org/resource/dog> ?p1 ?n1. 
  # SERVICE <http://dbpedia.org/sparql> {
    <http://dbpedia.org/resource/Dog> ?p2 ?n1 .
  # }
}
Run Code Online (Sandbox Code Playgroud)

试试自己

现在如果我还没有想法并希望自动完成并且任意长度和方向怎么办?

我知道SPARQL 1.1的属性路径,但它们似乎只适用于已知属性(http://www.w3.org/TR/sparql11-query/#propertypaths):

变量不能用作路径本身的一部分,只能用作结尾.

此外,我想要允许任何路径,因此路径上的谓词可能会改变.

我当前(因为我觉得很荒谬)的方法是查询所有可能的长度k达到极限的路径n.

倾倒不是我的选择,因为它有数十亿的三元组...我想使用SPARQL!

sparql

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

如何将一个numpy的二维数组裁剪为非零值?

假设我有一个2d布尔numpy数组,如下所示:

import numpy as np
a = np.array([
    [0,0,0,0,0,0],
    [0,1,0,1,0,0],
    [0,1,1,0,0,0],
    [0,0,0,0,0,0],
], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

我通常如何将其裁剪到包含所有True值的最小框(矩形,内核)?

因此,在上面的示例中:

b = np.array([
    [1,0,1],
    [1,1,0],
], dtype=bool)
Run Code Online (Sandbox Code Playgroud)

arrays numpy crop

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

标签 统计

arrays ×1

crop ×1

git ×1

git-rebase ×1

numpy ×1

python ×1

python-2.7 ×1

python-internals ×1

sparql ×1