我先跑
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 文件的结果?
我有一个命名元组列表。每个命名元组都是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
),并将其用作键。但是,这将大大增加我的代码的复杂性。除了哈希之外,还有什么让我逃脱的聪明的哈希方法吗?
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 代码来创建一条贝塞尔曲线,我从中创建了一条贝塞尔曲线。
这是我的进口:
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 只有起点、终点和控制点的参数。
我有一个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)
我要填充的error
列observed_data
。对于第一行,我将执行以下操作:
UPDATE observed_data
SET error =
((SELECT …
Run Code Online (Sandbox Code Playgroud) python ×4
coverage.py ×1
dictionary ×1
hashmap ×1
join ×1
optimization ×1
postgresql ×1
sql-update ×1
svg ×1
svg-path ×1