类点的定义为(其中还包含一些方法,属性和东西,但这是最少的一部分):
class point():
def ___init___(self, x, y):
self.x = x
self.y = y
Run Code Online (Sandbox Code Playgroud)
因此,我看到了这个问题,但是当我尝试应用它时,它返回一个错误:
G = nx.Graph()
p = point(0,0)
G.add_node(0, p)
Run Code Online (Sandbox Code Playgroud)
NetworkXError:attr_dict参数必须是字典。
如果我用
G = nx.Graph()
p = point(0,0)
G.add_node(0, data = p)
Run Code Online (Sandbox Code Playgroud)
我没有收到错误,但是当我尝试访问X坐标时,事实证明并没有将其保存为点。
G[0].x
Run Code Online (Sandbox Code Playgroud)
返回:AttributeError:'dict'对象没有属性'x'
在做
G = nx.Graph()
G.add_node(0, data = point(0,0))
G[0]
Run Code Online (Sandbox Code Playgroud)
返回:{}
这意味着它仍将其另存为字典。
我看到我可以使点成为可散列的,并将这些对象用作节点,所以我添加了属性ID,因为点将移动。我将其添加到类中,并__repr__来绘制漂亮的图形:
def __hash__(self):
return self.id_n
def __cmp__(self, p):
if self.id_n < p.id_n: return -1
elif self.id_n == p.id_n: return 0
else: return 1
def __eq__(self, p):
if p.id_n == self.id_n: …Run Code Online (Sandbox Code Playgroud) 我需要从文件"test"(数据示例)中排序一些数据:
1.03073 0.000193333 2.02417 2.15578
1.03073 0.0002 2.12005 2.14534
1.03073 1.33333e-05 100 0
1.03073 2e-05 100 0
Run Code Online (Sandbox Code Playgroud)
这样它首先在第一列上排序,然后在第二列上排序.我试过了
sort -n -k1 -k2 -u test >test1
Run Code Online (Sandbox Code Playgroud)
但它很混乱,因为他没有看到"e-5"的一部分.有任何想法吗?