使用Python for .Net框架,我尝试从C#.dll文件调用方法。此方法具有以下参数:
public static void ExternalFunction(
String Arg1,
ref Double[]& Arg2,
);
Run Code Online (Sandbox Code Playgroud)
我知道.Net框架会将Python浮点数转换为双精度数。现在,我想知道如何制作一个数组(双精度)并将其作为对外部方法的引用。
我有以下代码:
import clr
clr.AddReference("MyDll")
from MyLib import MyClass
myName = "Benjamin"
r = MyClass.ExternalFunction(myName, 0.0);
print "Result: %s"%r
Run Code Online (Sandbox Code Playgroud) 我有很多间隔(大约 5k 到 10k)。这些元素有开始和结束位置;像 (203, 405)。间隔的坐标存储在列表中。
我想确定每对间隔之间重叠部分的坐标和长度。这可以按如下方式完成:
# a small list for clarity, with length normally around 5000s
cList = ((20, 54), (25, 48), (67, 133), (90,152), (140,211), (190,230))
for i, c1 in enumerate(cList[:-1]): # a linear pairwise combination
for c2 in cList[i + 1:]:
left = max(c1[0], c2[0])
right = min(c1[1], c2[1])
overlap = right - left
if overlap > 0:
print "left: %s, right: %s, length: %s" % (left, right, overlap)
Run Code Online (Sandbox Code Playgroud)
导致:
left: 25, …Run Code Online (Sandbox Code Playgroud)