小编P.V*_*.V.的帖子

为什么 Coverage.py 忽略没有覆盖的文件?

我先跑

nosetests --with-coverage
Run Code Online (Sandbox Code Playgroud)

所以我应该有一个包含所有默认设置的 .coverage 文件。

在 folder_1 中,我有 file_1.py、file_2.py 和 file_3.py

当我 cd 进入 folder_1 并运行时

coverage report
Run Code Online (Sandbox Code Playgroud)

它输出:

在此处输入图片说明

它不会为 file_3.py 生成任何内容!但是当我运行时:

coverage report file_3.py
Run Code Online (Sandbox Code Playgroud)

它说:

在此处输入图片说明

它是否跳过报告中没有覆盖的文件?如何更改它以便报告显示每个 *.py 文件的结果?

python coverage.py

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

搜索命名元组列表的最快方法?

我有一个命名元组列表。每个命名元组都是DataPoint我创建的一种类型,如下所示:

class DataPoint(NamedTuple):
    data: float
    location_zone: float
    analysis_date: datetime
    error: float
Run Code Online (Sandbox Code Playgroud)

在我的代码的各个阶段,我必须DataPoints通过特定属性来获取列表中的所有内容。这是我的处理方式analysis_date,其他属性也有类似的功能:

def get_data_points_on_date(self, data_points, analysis_date):
    data_on_date = []
    for data_point in data_points:
        if data_point.analysis_date == analysis_date:
            data_on_date.append(data_point)
    return data_on_date
Run Code Online (Sandbox Code Playgroud)

在具有数千个点的列表上,这被称为> 100,000次,因此它大大降低了我的脚本的速度。

我可以用字典代替列表,以显着提高速度,但是由于我需要搜索多个属性,因此没有明显的关键。我可能会选择占用最多时间的函数(在本例中为analysis_date),并将其用作键。但是,这将大大增加我的代码的复杂性。除了哈希之外,还有什么让我逃脱的聪明的哈希方法吗?

python optimization

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

内部字典顺序可以改变吗?

exampleDict = {'a':1, 'b':2, 'c':3, 'd':4}
Run Code Online (Sandbox Code Playgroud)

上面的字典最初按以下顺序迭代:

b=2
d=4
a=1
c=3
Run Code Online (Sandbox Code Playgroud)

然后,我在我的代码中移动了大量文件,现在它按以下顺序迭代:

d=4
a=1
c=3
b=2
Run Code Online (Sandbox Code Playgroud)

我知道订单内部存储为hashmap,但是什么会导致内部订单改变?

编辑:我不需要保留顺序,所以我会坚持使用dict.我只是想知道为什么会这样.我认为订单不能得到保证,但一旦它有任意的内部订单,它就会坚持下去,以备将来的迭代.

python dictionary hashmap

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

如何从 svgpathtools 贝塞尔曲线获取坐标列表?

我有 python 代码来创建一条贝塞尔曲线,我从中创建了一条贝塞尔曲线。

这是我的进口:

import from svgpathtools import Path, Line, CubicBezier
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

    bezier_curve = CubicBezier(start_coordinate, control_point_1, control_point_2, end_coordinate)
    bezier_path = Path(bezier_curve)
Run Code Online (Sandbox Code Playgroud)

我想创建一个组成这条曲线的坐标列表,但我正在阅读的文档中没有一个提供直接的方法来做到这一点。bezier_curve 和 bezier_path 只有起点、终点和控制点的参数。

python svg svg-path

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

如何为每一行更新不同的值?

我有一个Postgres表predicted_data

 id | lat | lon | predicted
----+-----+-----+-----------
  1 |   1 |   1 |         10
  2 |   2 |   2 |         20
  3 |   3 |   3 |         30
Run Code Online (Sandbox Code Playgroud)

我有另一个表observed_data

 id | lat | lon | observed | error
----+-----+-----+----------+-------
  1 |   1 |   1 |       11 |
  2 |   2 |   2 |       25 |
  3 |   3 |   3 |       32 |
Run Code Online (Sandbox Code Playgroud)

我要填充的errorobserved_data。对于第一行,我将执行以下操作:

UPDATE observed_data 
SET error = 
((SELECT …
Run Code Online (Sandbox Code Playgroud)

postgresql join sql-update

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