小编Pet*_*ete的帖子

Java:可以在属性文件中换行吗?

是否可以在Java属性文件的下一行继续长字符串?

例如,不知何故

myStr=Hello
      World
Run Code Online (Sandbox Code Playgroud)

当我得到getProperty("myStr")它将返回"Hello World"?

java configuration properties

108
推荐指数
3
解决办法
5万
查看次数

Java教程说我可以有一个包 - 私有接口,但我不能

它说,在Java教程"定义接口"中

如果未指定接口public,则只能在与接口相同的包中定义的类上访问您的接口.

但是,这个

interface PPInterface {
    void foo();
    void bar();
}

class NewClass implements PPInterface {
    void foo() {}
    void bar() {}
}
Run Code Online (Sandbox Code Playgroud)

生成编译器错误NewClass因为我'试图分配较弱的访问权限; 是公开的.所以文档是错误的,或者我做错了什么,或者我误解了文档?

我想我不必使用界面 - 我喜欢它,因为它保持了良好的组织.

java interface access-specifier

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

除了字符串和整数之外的Python字典键?

任何人都有一些简洁的字典示例,其中包含一些有趣的键(除了规范字符串或整数),以及您在程序中如何使用它们?

我理解一个关键所需要的东西hashable,意味着它必须是不可变的和可比较的(有一个__eq__()或一个__cmp__()方法).

一个相关的问题是:我怎样才能快速,轻松地定义一个新的hashable

python dictionary

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

我可以指望在Python元组中保存顺序吗?

我有一个日期时间列表,我想从中构建时间段.换句话说,[t0, t1, ... tn]变成[(t0,t1),(t1,t2),...,(tn-1, tn)].我这样做了:

# start by sorting list of datetimes
mdtimes.sort()
# construct tuples which represent possible start and end dates

# left edges
dtg0 = [x for x in mdtimes]
dtg0.pop()

# right edges
dtg1 = [x for x in mdtimes]
dtg1.reverse()
dtg1.pop()
dtg1.sort()

dtsegs = zip(dtg0,dtg1)
Run Code Online (Sandbox Code Playgroud)

问题...

  1. 在我以这种方式创建它们之后,我可以依靠tn-1 <tn表示任何(tn-1,tn)吗?(订购保存吗?)
  2. mdtimes使用列表推导复制原始列表是一种好习惯吗?如果不是应该怎么做?
  3. 构建这些元组的目的是为了在它们之间迭代和段使用的数据集tn-1tn.这是一种合理的方法吗?即

    datasegment = [x for x in bigdata if ( (x['datetime'] > tleft) and (x['datetime'] < tright))] …
    Run Code Online (Sandbox Code Playgroud)

python tuples list

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

为什么Python`Memory Error`带有列表`append()`剩下大量的RAM

我正在从一组文本文件构建一个大型数据字典.当我阅读这些内容并处理它们时,我append(dataline)会列出一个列表.

在某些时候会append()产生Memory Error异常.但是,观看程序在Windows任务管理器中运行,在崩溃时我看到4.3 GB可用和1.1 GB可用.

因此,我不明白异常的原因.

Python版本是2.6.6.我想,唯一的原因是它无法使用更多可用的RAM.如果是这样,是否可以增加分配?

python memory list

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

什么g ++标志会使堆栈上的运行时大小的数组导致编译器错误?

默认情况下,使用g ++允许在堆栈上创建具有在运行时确定的大小的数组:

int size;
cout << "Enter array size: " 
cin >> size;
MyObject stack_array[size];
Run Code Online (Sandbox Code Playgroud)

根据这个问题的答案,这是一个坏主意,我同意.显然我应该能够使用g ++标志来强制执行严格/标准的C++并获得编译器错误.即使使用以下标志,代码仍然可以编译:

g++ -ansi -pedantic -Wall -Wextra -Werror -std=c++0x
Run Code Online (Sandbox Code Playgroud)

如何防止编译此代码?

这是我的版本信息:

g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/lto-wrapper
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.5.2-8ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.5 --enable-shared --enable-multiarch --with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib/i386-linux-gnu --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib/i386-linux-gnu --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default --with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
Thread model: posix
gcc version …
Run Code Online (Sandbox Code Playgroud)

c++ arrays g++

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

我可以在没有循环的情况下清理numpy数组吗?

也许这不是什么大不了的事,但是这让我心碎:

deltas = data[1:] - data[:-1]

有了这个:

for i in range(len(deltas)):
        if deltas[i] < 0: deltas[i] = 0
        if deltas[i] > 100: deltas[i] = 0
Run Code Online (Sandbox Code Playgroud)

对于这个特殊的例子......有更好的方法来做清洁部分吗?

问题第二部分:如果清理规则比这个例子更复杂或更复杂,该怎么办?例如,我们可能只想将所有负数更改为零.或者,我们可能正在进行更复杂的映射.

python numpy

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

矩阵的Numpy-weight和sum行

使用Python和Numpy,我想:

  • 将(n列x m行)矩阵的每一行视为向量
  • 每行的权重(向量的每个分量的标量乘法)
  • 添加每一行以创建最终向量(向量添加).

权重以规则的numpy数组nx 1给出,因此矩阵中的每个向量m应乘以权重n.

这就是我所拥有的(测试数据;实际矩阵很大),这可能是非Numpy和非Pythonic.谁能做得更好?谢谢!

import numpy

# test data
mvec1 = numpy.array([1,2,3])
mvec2 = numpy.array([4,5,6])
start_matrix = numpy.matrix([mvec1,mvec2])
weights = numpy.array([0.5,-1])

#computation
wmatrix = [ weights[n]*start_matrix[n] for n in range(len(weights)) ]

vector_answer = [0,0,0]
for x in wmatrix: vector_answer+=x
Run Code Online (Sandbox Code Playgroud)

python numpy vector matrix

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

Matplotlib:2-D 绘图更改第 3 维(类别)的线条颜色

如何根据第三维/类别更改常规二维图的颜色?例如,假设我们随时间记录了车辆的冷却液温度。我们用横轴表示时间,纵轴表示温度。我们还记录了每次“高温指示灯”是打开还是关闭。当灯亮时,我们希望绘制的灯是红色的;如果指示灯熄灭,则为绿色。

它基本上是一个 3-D 数据图,我们将特定颜色的线分配给第三个数据维度 (z)。对于此特定应用程序,我不想查看具有 3 个轴的 3-D 图;只是一个普通的二维图,根据需要改变线条颜色。

python matplotlib

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

使用元素作为索引的函数创建一个numpy矩阵

如何创建一个numpy矩阵,其元素是其索引的函数?例如,乘法表:a[i,j] = i*j

Un-numpy和un-pythonic将创建一个零数组然后循环.

毫无疑问,有一种更好的方法可以做到这一点,没有循环.

然而,更好的是直接创建矩阵.

python numpy matrix

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