小编Bre*_*ugh的帖子

如何在列表推导中使用重新匹配对象

我有一个函数从字符串列表中挑出块并将它们作为另一个列表返回:

def filterPick(lines,regex):
    result = []
    for l in lines:
        match = re.search(regex,l)
        if match:
            result += [match.group(1)]
    return result
Run Code Online (Sandbox Code Playgroud)

有没有办法将其重新表述为列表理解?显然它是相当清楚的; 只是好奇.


感谢那些贡献的人,特别提到了@Alex.这是我最终得到的浓缩版本; 正则表达式匹配方法作为"预先提升"参数传递给filterPick:

import re

def filterPick(list,filter):
    return [ ( l, m.group(1) ) for l in list for m in (filter(l),) if m]

theList = ["foo", "bar", "baz", "qurx", "bother"]
searchRegex = re.compile('(a|r$)').search
x = filterPick(theList,searchRegex)

>> [('bar', 'a'), ('baz', 'a'), ('bother', 'r')]
Run Code Online (Sandbox Code Playgroud)

python regex list-comprehension

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

TortoiseGit是否允许选择性分期,如git-gui?

这个问题:

你能用TortoiseGit与索引/暂存区域进行交互吗?

采取TortoiseGit的主要功能不是消除对git命令行的需要的立场,一般来说,我同意.

然而,git-gui有一个我经常使用的功能(可能是为了弥补糟糕的工作流程):能够从当前补丁中选择性地暂停或取消分段或线,以便在多次提交中将一堆散布的变化分成连贯的变更集.

命令行替代(对我而言,无论如何)有点笨拙,所以,理想情况下,我想在TortoiseGit中做同样的选择性提交.

到目前为止,我还没有找到办法做到这一点,我怀疑,从另一个问题的答案来看,这是不可能的.有谁可以证实这一点,好吗?

git tortoisegit git-gui

40
推荐指数
4
解决办法
1万
查看次数

PostgreSQL - 我应该如何使用first_value()?

此答案显示如何从股票代码生成高/低/开/关值:
检索任意时间间隔的聚合

我正在尝试实现基于此的解决方案(PG 9.2),但我很难获得正确的值first_value().

到目前为止,我尝试了两个查询:

SELECT  
    cstamp,
    price,
    date_trunc('hour',cstamp) AS h,
    floor(EXTRACT(minute FROM cstamp) / 5) AS m5,
    min(price) OVER w,
    max(price) OVER w,
    first_value(price) OVER w,
    last_value(price) OVER w
FROM trades
Where date_trunc('hour',cstamp) = timestamp '2013-03-29 09:00:00'
WINDOW w AS (
    PARTITION BY date_trunc('hour',cstamp), floor(extract(minute FROM cstamp) / 5)
    ORDER BY date_trunc('hour',cstamp) ASC, floor(extract(minute FROM cstamp) / 5) ASC
    )
ORDER BY cstamp;
Run Code Online (Sandbox Code Playgroud)

这是结果的一部分:

        cstamp         price      h                 m5  min      max      first    last
"2013-03-29 09:19:14";77.00000;"2013-03-29 09:00:00";3;77.00000;77.00000;77.00000;77.00000

"2013-03-29 09:26:18";77.00000;"2013-03-29 …
Run Code Online (Sandbox Code Playgroud)

sql postgresql window-functions postgresql-9.2

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

推荐的Subversion存储库布局背后的原因是什么?

使用Subversion的Version Control为(单项目)存储库推荐以下布局(由此问题补充):

/trunk
/tags
  /rel.1 (approximately)
  ...
/branches
  /rel1fixes
Run Code Online (Sandbox Code Playgroud)

与(或许)更注重过程的安排相比,这种安排的相对优点是什么?:

/development
  /current
  /stable
/qa (maybe)
  ...
/production
  /stable
  /Prod.2
  /Prod.1
/vendor
  /Rel.5.1
  /Rel.5.2
Run Code Online (Sandbox Code Playgroud)

请注意,我正在考虑内部部署,而不是构建产品.

免责声明:虽然我是Subversion用户,但我从未在真实的环境中部署它.

svn

17
推荐指数
3
解决办法
5554
查看次数

如何让bitcoind听取0.0.0.0:8332?

我正在bitcoind一台机器上运行,并希望从另一台机器上控制它(使用python和JSON RPC接口).

~/.bitcoin/bitcoin.config 在bitcoind主机(192.168.2.4)上:

rpcuser=xxx
rpcpassword=xxx
gen=1
rcpallowip=127.0.0.1
rcpallowip=192.168.2.6   # This is the other machine
paytxfee=0.01
Run Code Online (Sandbox Code Playgroud)

现在,我开始bitcoind -daemon,但我的python程序失败了

IOError: [Errno socket error] [Errno 111] Connection refused
Run Code Online (Sandbox Code Playgroud)

在bitcoind主机上,ps -nlp显示在127.0.0.1:8332上侦听bitcoind,而不是0.0.0.0:8332(这是我所期望的).Wireshark显示RST,ACK对TCP连接尝试的响应,这似乎是合乎逻辑的.

我错过了什么?

bitcoin

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

如何提高对Haskell Type系统的理解?

在对随机数生成器进行了大量修补之后,我得出的结论是,我对Haskell类型系统的理解是不完整的,如果不完全丢失的话.

这是一个例子.我正在尝试生成泊松事件时间流:

import System.Random
import Numeric

bround :: (RealFloat r, Integral b) => b -> r -> r
bround places x = (fromIntegral (round ( x * exp))) / exp
       where exp = 10.0 ^ places

rndp = (bround 4)

myGen = (mkStdGen 1278267)

infinitePoissonStream :: (RandomGen g, Random r, RealFloat r) => r -> r -> g -> [r]
infinitePoissonStream rate start gen = next:(infinitePoissonStream rate next newGen)
        where  (rvalue, newGen) = random gen
               next = (start - log(rvalue) …
Run Code Online (Sandbox Code Playgroud)

haskell types

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

Type Deduction如何在Haskell中运行?

我试图通过学习Haskell来拓宽思路.

我自己造成的家庭作业是建立一个时钟滴答发生器,它会给我泊松分布的间隔,最终结果(经过长时间的斗争,我承认)是这样的:

import System.Random
poissonStream :: ( Ord r, Random r, Floating r, RandomGen g) => r -> r -> r -> g -> [r]
poissonStream rate start limit gen 
        | next > limit = [] 
        | otherwise     = next:(poissonStream rate next limit newGen)
        where  (rvalue, newGen) = random gen
               next = start - log(rvalue) / rate  
Run Code Online (Sandbox Code Playgroud)

但有两件事(至少)我不明白:

为什么我需要" Ord r"以及" Floating r"?(我本来期望某种自动继承:"浮动"意味着"Ord".)

通过什么路径rvalue :: Float实现了隐含的类型定义?在GHCi中,我得到了我的预期:

*Main System.Random> let (rvalue, newGen) = random (mkStdGen 100)
<interactive>:1:23: …
Run Code Online (Sandbox Code Playgroud)

haskell types type-inference

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

在Go中,如何提取当前本地时间偏移的值?

我是Go新手,我正在努力格式化并显示一些IBM大型机TOD时钟数据.我想格式化GMT和本地时间的数据(作为默认值 - 否则在用户指定的区域中).

为此,我需要从GMT获取本地时间偏移的值作为有符号整数秒.

在zoneinfo.go(我承认我不完全理解),我可以看到

// A zone represents a single time zone such as CEST or CET.
type zone struct {
    name   string // abbreviated name, "CET"
    offset int    // seconds east of UTC
    isDST  bool   // is this zone Daylight Savings Time?
}
Run Code Online (Sandbox Code Playgroud)

但我认为这不是导出的,所以这段代码不起作用:

package main
import ( "time"; "fmt" )

func main() {
    l, _ := time.LoadLocation("Local")
    fmt.Printf("%v\n", l.zone.offset)
}
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法来获取这些信息?

go timezone-offset

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

什么"`str`没有在编译时知道的常量大小"是什么意思,什么是最简单的修复方法?

我正在尝试操作从函数参数派生的字符串,然后返回该操作的结果:

fn main() {
    let a: [u8; 3] = [0, 1, 2]; 
    for i in a.iter() {
        println!("{}", choose("abc", *i));
    }
}

fn choose(s: &str, pad: u8) -> String {
    let c = match pad {
        0 => ["000000000000000", s].join("")[s.len()..],
        1 => [s, "000000000000000"].join("")[..16],
        _ => ["00", s, "0000000000000"].join("")[..16],
    };
    c.to_string()
}
Run Code Online (Sandbox Code Playgroud)

在构建时,我收到此错误:

error[E0277]: the trait bound `str: std::marker::Sized` is not satisfied
 --> src\main.rs:9:9
  |
9 |     let c = match pad {
  |         ^ `str` does not have a …
Run Code Online (Sandbox Code Playgroud)

string pointers rust

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

Golang:带注释的代码行的惯例是什么?

代码格式约定转到模型" gofmt 惯例".该惯例的一部分我很难理解,如果有一个正式的定义gofmt是一个实现,而不是必须从经验例子中推导出模型,那将是很好的.这是一个样本.

之前go fmt:

func sieve(mine int,                  // This instance's own prime
           inch chan int,             // Input channel from lower primes
           done chan int,             // Channel for signalling shutdown
           count int) {               // Number of primes - counter
    start := true                     // First-number switch
    ouch := make(chan int)            // Output channel, this instance
    fmt.Printf("%v ", mine)           // Print this instance's prime
Run Code Online (Sandbox Code Playgroud)

之后go fmt:

func sieve(mine int, // This instance's own prime
    inch …
Run Code Online (Sandbox Code Playgroud)

code-formatting go

6
推荐指数
1
解决办法
2689
查看次数