小编Ant*_*ony的帖子

Python负零切片

我经常发现自己必须处理序列中的最后n个项目,其中n可能为0.问题是尝试切片时[-n:]将不起作用n == 0,因此需要笨拙的特殊情况代码.例如

if len(b): 
    assert(isAssignableSeq(env, self.stack[-len(b):], b))
    newstack = self.stack[:-len(b)] + a
else: #special code required if len=0 since slice[-0:] doesn't do what we want
    newstack = self.stack + a
Run Code Online (Sandbox Code Playgroud)

我的问题是 - 有没有办法在不需要笨拙的特殊套管的情况下获得这种行为?如果我不必一直检查0,代码会简单得多.

python idioms slice

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

如何可靠地找到Java的rt.jar或等效文件?

如何可靠地找到包含Java引导程序类(rt.jar或等效类)的jar?我正在使用下面的代码,但是我发现它JAVA_HOME用于引用JDK而不是JRE,并且如果未安装JDK将会完全失败。

def findJRE():
    try:
        home = os.environ['JAVA_HOME']
        path = os.path.join(home, 'jre', 'lib', 'rt.jar')
        if os.path.isfile(path):
            return path

        #For macs
        path = os.path.join(home, 'bundle', 'Classes', 'classes.jar')
        if os.path.isfile(path):
            return path
    except Exception as e:
        pass
Run Code Online (Sandbox Code Playgroud)

python java classpath

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

PHP _POST解析代码的位置

有谁知道在哪里可以找到的代码PHP用来发布数据解析成$_POST$_FILES?我试图找出它如何处理未转义的文件名,但我似乎无法找到它.它是一个巨大的项目并没有帮助,我不知道在哪里看,搜索没有帮助.

php

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

为什么不推荐使用isJavaLetterOrDigit?

为什么该方法isJavaLetterOrDigitjava.lang.Character弃用?

文档说isJavaIdentifierPart应该使用该方法,但不指出原因.这两种方法的文档在其他方面是相同的.谷歌搜索主题没有得到任何解释.

事实上,源代码搜索显示,现在,一个人只是调用另一个,所以行为没有区别.它只是被弃用了,因为它有一个更令人困惑的名字?似乎是一个相当奇怪的决定.

@Deprecated
public static boolean isJavaLetterOrDigit(char ch) {
    return isJavaIdentifierPart(ch);
}
Run Code Online (Sandbox Code Playgroud)

java deprecated

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

缓存 html 忽略查询字符串

在我的网站上,我使用查询字符串参数将信息传递给 Javascript,但返回的实际 html 与查询字符串无关(它只是由 Javascript 动态填充的模板)。

有没有简单的方法可以独立于查询字符串参数来缓存页面?我的一个想法是使用服务工作者从请求中删除查询字符串,但我想知道是否有任何更简单、更干净的方法。

http http-caching service-worker

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

Python正则表达式仅匹配整个字符串

有没有简单的方法来测试正则表达式是否与Python中的整个字符串匹配?我以为放到$最后可以做到这一点,但事实证明,$在尾随换行符的情况下这是行不通的。

例如,以下内容返回一个匹配项,即使那不是我想要的。

re.match(r'\w+$', 'foo\n')
Run Code Online (Sandbox Code Playgroud)

python regex

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

有什么理由不在 shell 脚本中执行?

我有一堆包装 shell 脚本,它们操作命令行参数并在最后调用另一个二进制文件之前执行一些操作。有什么理由不总是把exec二进制放在最后吗?看起来这会更简单、更有效,但我从未见过它完成。

bash

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

python最低共同祖先

在Python中实现最低共同祖先的最简单方法是什么?我有一个树,每个节点都有一个指向其父节点的节点,我希望能够找到给定两个节点的第一个共同祖先.我想出了几个想法,但没有一个特别有吸引力

  1. 让每个节点包含其基数列表,并执行连接,找到最长的公共前缀,然后取最后一个元素.不幸的是,我不知道有任何内置的方法来做最长的公共前缀,所以这需要手动循环.

  2. 让每个节点包含一组基础并执行集合交集,并获取最大元素.但这需要定义自定义比较运算符,我甚至不确定它是否可行.

我该怎么办?我正在寻找一些有利于简化而不是性能的东西,因此需要复杂处理的解决方案已经完成.

编辑:我发现虽然没有内置方式,但你可以使用zip在一行中做最长的公共前缀,所以它仍然相当简单.

common = [x for x in zip(*baselists) if len(set(x)) == 1][-1]
Run Code Online (Sandbox Code Playgroud)

python algorithm tree

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

C++循环依赖按值返回?

当在C++中通过指针或引用返回时,很容易通过前向声明来破坏循环依赖.但是,如果你必须按价值返回,你会这样做吗?

考虑下面的简化示例

struct Foo {
  Bar bar() {return Bar{*this}; }
};

struct Bar {
  Foo foo;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法打破循环依赖?试图转发声明Bar只会导致对不完整返回类型的投诉.

c++ circular-dependency forward-declaration

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

为什么 Collat​​z 猜想程序不适用于 Java 中的大整数

这是我在 Java 上模拟 Collat​​z 猜想的程序:

import java.util.*;
public class Collatz {
public static void main(String args[]){
    Scanner raj= new Scanner(System.in);
    int n;
    int k=0;
    System.out.print("n? ");
    n = raj.nextInt();
    while(n > 1){
        if(n%2 ==1){
            n=3*n+1;
            System.out.println(n);
            k++;
        }
        if(n%2==0){
            n=n/2;
            System.out.println(n);
            k++;
        }

    }
    System.out.print("It took " + k + " iterations!");
}

}
Run Code Online (Sandbox Code Playgroud)

当我输入 n=6 时,我得到

3 10 5 16 8 4 2 1 迭代了 8 次!

但是当我输入 n= 63728127 时,我得到

191184382 95592191 286776574 143388287 430164862 215082431 645247294 322623647 …

java math integer-overflow collatz

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