下面是collectionsPython 2.7中模块的源代码.我对OrderedDict初始化__root变量的方式感到困惑.为什么使用它try和except,有必要吗?为什么不能只使用它
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) 我已经在库上进行了一段时间的黑客攻击,并且在我的private存储库中有很多提交:
A -> B -> C -> D -> E
Run Code Online (Sandbox Code Playgroud)
最后,我即将完成第一个版本,并希望将其发布到一个远程调用public,D然后保留A..C给我自己,所以public之后应该看起来像这样:
D -> E
Run Code Online (Sandbox Code Playgroud)
根据需要,我希望能够证明我是如何到达的D(想想版权声明等)。由于(目前)几乎不可能用时间和变更集对链中的提交哈希进行逆向工程,我认为只保留D的父指针C将是 git 的天才优势之一。可悲的是,我找不到一种方法来实际完成这项工作。
所以,我怎么能推D -> E到public使其成为一个功能齐全的公共仓库与所有包含结账所需的对象D或E与D仍指向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 …
是否存在一种良好的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!
假设我有一个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)