我有一个对(元组)的列表,为简化起见,像这样:
L = [("A","B"), ("B","C"), ("C","D"), ("E","F"), ("G","H"), ("H","I"), ("G","I"), ("G","J")]
Run Code Online (Sandbox Code Playgroud)
我想使用python有效地将此列表拆分为:
L1 = [("A","B"), ("B","C"), ("C","D")]
L2 = [("E","F")]
L3 = [("G","H"), ("G","I"), ("G","J"), ("H","I")]
Run Code Online (Sandbox Code Playgroud)
如何有效地将列表分成几对,对于该组中的对,必须始终至少有一对与其他项共享一个项目?如答案之一所述,这实际上是网络问题。目标是有效地将网络分成断开(隔离)的网络部分。
类型列表,元组(集合)可以更改以获得更高的效率。
我正在测试scipy.spatial.Delaunay并且无法解决两个问题:
情节的代码和图像:
import numpy as np
from scipy.spatial import Delaunay,delaunay_plot_2d
import matplotlib.pyplot as plt
#input_xyz.txt contains 1000 pts in "X Y Z" (float numbers) format
points = np.loadtxt("input_xyz.txt", delimiter=" ", usecols=(0, 1))
tri = Delaunay(points)
delaunay_plot_2d(tri)
plt.plot(points[:,0], points[:,1], 'o')
plt.show()
Run Code Online (Sandbox Code Playgroud)

如scipy.spatial.Delaunay所述:
"除非您传入Qhull选项"QJ",否则Qhull不保证每个输入点在Delaunay三角剖分中都显示为顶点."
但如果我使用QJ:
tri = Delaunay(points, qhull_options = "QJ")
Run Code Online (Sandbox Code Playgroud)
我得到Qhull错误,如果我使用QJn(n =某个高数字):
tri = Delaunay(points, qhull_options = "QJ200")
Run Code Online (Sandbox Code Playgroud)
为了克服这个错误,生成的网格看起来很糟糕 - 整个地方的三角形相互交叉.
如何用scipy.spatial.Delaunay将所有点包含在无差错三角网格中?
PyCharm 有没有办法将多行文本(SQL)粘贴到字符串文字中?例如:
SELECT column1
, column2
FROM table1
WHERE column3 IN
(
SELECT TOP(1) column4
FROM table2
INNER JOIN table3
ON table2.column1 = table3.column1
)
Run Code Online (Sandbox Code Playgroud)
进入:
sql = (
"SELECT column1"
" , column2"
"FROM table1"
"..."
)
Run Code Online (Sandbox Code Playgroud)
理想情况下告诉 PyCharm 它是 SQL 语言中的文本以突出显示语法?