小编Deb*_*ski的帖子

Numpy'智能'对称矩阵

numpy中是否有一个智能且节省空间的对称矩阵,它在写入[j][i]时自动(并透明地)填充位置[i][j]

import numpy
a = numpy.symmetric((3, 3))
a[0][1] = 1
a[1][0] == a[0][1]
# True
print(a)
# [[0 1 0], [1 0 0], [0 0 0]]

assert numpy.all(a == a.T) # for any symmetric matrix
Run Code Online (Sandbox Code Playgroud)

一个自动的Hermitian也会很好,虽然在写作的时候我不需要它.

python numpy matrix

66
推荐指数
3
解决办法
4万
查看次数

Scala中更好的字符串格式

有太多的争论,String.format很容易让人感到困惑.是否有更强大的格式化String的方法.像这样:

"This is #{number} string".format("number" -> 1)
Run Code Online (Sandbox Code Playgroud)

或者这是不可能的,因为类型问题(format需要采取Map [String,Any],我假设;不知道这是否会使事情变得更糟).

或者更好的方式是这样做:

val number = 1
<plain>This is { number } string</plain> text
Run Code Online (Sandbox Code Playgroud)

即使它污染名称空间?

编辑:

虽然在许多情况下可能会有一个简单的拉皮条,但我也在寻找与Python相同方向的东西format()(参见:http://docs.python.org/release/3.1.2/library/string.html#formatstrings)

string formatting scala string-formatting

55
推荐指数
6
解决办法
4万
查看次数

使用SHIFT +箭头选择vim/MacVim中的文本

MacVim中一个更好的功能是可以使用通常的OS命令来复制和粘贴文本(即命令+ C和命令+ V).

这在你刚刚在另一个编辑器中工作的情况下特别好看,而你的大脑还没有准备好告诉你如何输入真实的东西.

但是,我的大脑需要做的一件事就是思考:这是文本选择模式.在非vi编辑器中,我将使用Shift + Arrow,在MacVim中尝试此操作不起作用.但另一方面,它并不认为Shift + Arrow也被用于其他任何事情.是否可以重新映射密钥以使其成为可能?

(理想情况下,编辑器在选择文本后仍然处于插入模式;这将节省一些额外的击键.)

vim textselection macvim

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

git:未注释的标签是否比带有错误注释的标签更糟糕?

您查看的每个git教程都对标记有明确的看法:一个应该始终使用带注释的标记,其中一个原因是它们被使用git describe.

但是,我没有看到使用git describe --tags中的任何不良内容,也将未注释的标记作为参考点.对于未注释的标签,还有什么其他的被认为是坏的吗?

我问,因为我刚刚将SVN项目转换为git.我实际上是在考虑为标签提供一个注释,但是如果不是一个令人担忧的多余的"我们项目的标记版本1.5"消息(它已被用作SVN注释),我应该放在那里?

带注释的标签对我来说似乎是件好事(你可以把东西标记为不同的作者并可能给出一个简短的描述),但是如果除了原始提交之外你没有任何有意义的说法,你是否应该真正使用它们?信息?

要么

在哪些情况下未注释的标签并不令人不满?

编辑:我不是在谈论签名注释标签(我理解在某些情况下签名标签的优势); 我只关心未注释和无符号注释之间的区别.

编辑2:附加另一个问题以扩大范围,并可能得到一些关于现实生活中最佳实践的深刻见解

什么时候使用未加标签和你感到很难过的时候你怎么办?

tags git

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

用对象覆盖方法

为什么可以用object?覆盖空括号方法?

trait A {
  def meth = {}
  def meth_p() = {}
}

class B extends A {
  object meth_p
} // compiles
Run Code Online (Sandbox Code Playgroud)

覆盖没有括号的方法不会编译:

class B1 extends A {
  object meth
} // does not compile
Run Code Online (Sandbox Code Playgroud)

以下任何组合都不起作用(没有override修饰符):

class BX extends A {
  // of course, each declaration should get its own class
  def meth = {}
  def meth_p() = {}
  def meth() = {}
  def meth_p = {}
  val meth = {}
  val meth_p = {} …
Run Code Online (Sandbox Code Playgroud)

overriding scala

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

从图中创建虚假提交

考虑到我有以下ASCII图:

A---B---C---D---E---F master
     \         /
      X---Y---Z topic
Run Code Online (Sandbox Code Playgroud)

(从最近但无关的问题中偷来)

是否有一个命令/脚本/工具接受它作为输入并相应地创建虚拟提交?

git

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

为什么Tex/Latex在后续运行中没有加速?

我真的很想知道,为什么即使最近的Tex/Latex系统也没有使用任何缓存来加速以后的运行.每次我修复一个逗号*时,调用Latex花费我大约相同的时间,因为它需要加载和转换每个图片文件.

(*我知道即使更改一个微小的逗号也会影响整个结构,但当然,一个编写良好的缓存格式可以看到它的影响.另外,可能会出现这样的情况:只要速度快,就不需要100%的正确性.)

Tex 的语言中是否存在使得复杂或不可能完成的事情,或者只是在Tex的原始实现中,没有必要这样做(因为在那些大型计算机上它本来会很慢)?

但另一方面,为什么这不会让其他人如此烦恼以至于他们已经启动了一个具有某种缓存的分支(或者将Tex文件透明地转换为更快解析的格式)?

有什么办法可以加快Latex的后续运行吗?除了将所有内容放入chapterXX.tex文件然后将它们评论出来之外?

latex tex pdflatex compilation-time

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

scala闭包/匿名函数中的多个返回点

据我所知,Scala中没有办法在匿名函数中有多个返回点,即

someList.map((i) => {
    if (i%2 == 0) return i // the early return allows me to avoid the else clause
    doMoreStuffAndReturnSomething(i) // thing of this being a few more ifs and returns
})
Run Code Online (Sandbox Code Playgroud)

提出一个error: return outside method definition.(如果没有提出这个问题,那么代码将不起作用,因为我希望它可以工作.)

我可以做的一个解决方法是以下

someList.map({
    def f(i: Int):Int = {
        if (i%2 == 0) return i
        doMoreStuffAndReturnSomething(i)
    }
    f
})
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否还有另一种"接受"的做法.也许有可能没有内部功能的名称?

(一个用例是continue在循环中模拟一些有价值的构造.)

编辑

请相信我,有必要避免使用else语句,因为该doMoreStuff部分可能看起来像:

val j = someCalculation(i)
if (j == 0) return 8
val k = needForRecalculation(i) …
Run Code Online (Sandbox Code Playgroud)

closures scala return-value anonymous-function

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

Tkinter:等待队列中的项目

我正在使用队列在后台线程和Tk GUI应用程序之间交换消息.目前,这是通过不时调用查询方法来完成的.

def read_queue(self):
    try:
        self.process(self.queue.get(False)) # non-blocking
    except Queue.Empty:
        pass
    finally:
        self.after(UPDATE_TIME, self.read_queue)
Run Code Online (Sandbox Code Playgroud)

这种方法的问题是,如果UPDATE_TIME太大,应用程序将比可能的更慢地处理新项目.如果它太小,Tk花费大部分时间来检查队列,虽然它可以在此期间做其他事情.

有没有办法read_queue在新项目到达队列时自动触发方法?(当后台线程填满队列时,我当然可以在Tk上调用一个方法,但我担心这会给我带来一些并发问题 - 这就是我毕竟使用队列的原因.)

python multithreading tkinter event-handling

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

始终滚动div元素而不是页面本身

我有一个内部<div id="content">元素的页面布局,其中包含页面上的重要内容.设计的重要部分是:

#content {
  height: 300px;
  width: 500px;
  overflow: scroll;
}
Run Code Online (Sandbox Code Playgroud)

现在当包含文本大于300px时,我需要能够滚动它.是否可以滚动<div>,即使鼠标没有悬停元素(箭头键也应该工作)?

请注意,我不想禁用"全局"滚动:页面上应该有两个滚动条,全局滚动条和滚动条<div>.

唯一改变的是内部<div>应该总是滚动,除非它不能再移动(在这种情况下页面应该开始滚动).

这可能以某种方式实现吗?

编辑

我认为问题有点令人困惑,所以我会附加一系列我希望它能够工作的方法.(Khez已经提供了概念验证.)

第一个图像是打开时页面的外观.

现在,鼠标位于指示的位置并滚动,应该发生的是

  • 首先内部div滚动其内容(图2)
  • 内部div已完成滚动(图3)
  • body元素滚动,以便div本身移动.(图4)

希望现在有点清楚.

滚动概念 (图片感谢gomockingbird.com)

javascript css scroll focus mousewheel

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