在我的游戏中,我有一个元组列表 (x,y) :
solution = [(36, 37), (36, 36), (36, 35), (37, 35), (38, 35), (38, 34), (38, 33), (38, 32)]
Run Code Online (Sandbox Code Playgroud)
这个列表描述了玩家从点 (36, 37) 移动到点 (38, 32) 应该做的动作。
我想将此列表简化为以下内容:
opti = [(36, 37), (36, 35), (38, 35), (38, 32)]
Run Code Online (Sandbox Code Playgroud)
这意味着我想将 x 固定(或 y 固定)的任何一系列步骤减少到仅第一步和最后一步。
我正在努力找出一种算法来做到这一点。我已经尝试了两个多小时,这是我目前正在尝试的工作:
solution = [(36, 37), (36, 36), (36, 35), (37, 35), (38, 35), (38, 34), (38, 33), (38, 32)]
opti = [solution[0]]
for i in range(len(solution)):
if opti[-1][0] == solution[i][0]:
pass
elif opti[-1][1] == solution[i][1]:
pass …
Run Code Online (Sandbox Code Playgroud) 我正在开始开发 Google Home 操作,并希望使用 Python 语言而不是 node js,在https://developers.google.com/actions/get-started/ 的入门教程中提供。
我正在阅读教程,但被困在需要使用 node js 来演示事实应用程序的地方。
如上所述,我需要为此使用 Python。(我认为网络钩子在这里很重要。不确定它们是什么。)
我想将 neo4j 中的 cypher 查询结果转换为 JSON 格式。
我目前正在使用 neo4j 库来连接和查询图表。我可以,但是将结果转换为 JSON 很麻烦,因此这个问题。
这是我当前的代码:
from neo4j.v1 import GraphDatabase, basic_auth
from config import bolt_url,auth_id,auth_pass
driver = GraphDatabase.driver(bolt_url, auth=basic_auth(auth_id, auth_pass))
session = driver.session()
def get_some_data(limit=25) :
query = 'MATCH (n:Person)--(m:Organization) \
RETURN n,m LIMIT ' + str(limit)
return session.run(query)
result_some_data = get_some_data(limit=1)
gen = result_some_data.records()
for record in gen :
for k,v in record.items() :
print('{',k,':',v,'}')
print(v.get('name','meow'))
session.close
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
{ n : <Node id=44567 labels={'Person'} properties={'name': 'ABC'}> }
ABC
{ m : <Node …
Run Code Online (Sandbox Code Playgroud) 我正在编写一个脚本,使用gremlin-python库在gremlin-server上创建一个图形.我找不到任何关于图书馆的好文档.
这是我正在尝试的代码结构:
from gremlin_python import statics
from gremlin_python.structure.graph import Graph
from gremlin_python.process.graph_traversal import __
from gremlin_python.process.strategies import *
from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection
graph = Graph()
g = graph.traversal().withRemote(DriverRemoteConnection('ws://localhost:8182/gremlin','try1'))
# Drop all vertices in the graph to create a new one
g.V().drop().iterate()
a = g.addV('person').property('name', 'Tushar').property('pronoun', 'me')
b = g.addV('person').property('name', 'Avi').property('pronoun','you')
e1 = a.addE('knows').to(b).property('relation','self')
c = g.addV('subject').property('name','maths')
e2 = a.addE('studies').to(c)
e3 = b.addE('studies').to(c)
e3.next()
v = g.V().toList()
e = g.E().toList()
print(v)
print(e)
Run Code Online (Sandbox Code Playgroud)
这段代码只给我2个顶点和1个边.
我的一些尝试:
.next()
,图表上没有提交数据.e1
一个.next() …
我找到了使用groovy使用csv数据文件创建图表的指南.(https://github.com/vsantosu/gremlin-importer/wiki/CSV-import-guide)
假设我想使用gremlin-python在gremlin-server上创建这个奇迹超级英雄图(或任何图形).我怎样才能做到这一点?
我想不出什么,也找不到任何有用的东西.所以我对这个问题几乎是空白的
我想找到两个顶点之间的路径,直到找到路径或距离超过给定值(例如10)为止。
例如,说一个图(A)->(B)<-(C)<-(D)<-(E)->(F)<-(G)<-(H)->(I)
。最大距离为4。因此,如果我搜索路径(A-E)
,我会得到ABCDE
,但是如果我搜索(B-G)
,我会得到"too far away"
。
我目前使用它来查找两个顶点之间的路径:
g.V(nodeID1).repeat(__.both().simplePath()).until(__.hasId(nodeID2)).path().limit(limit).toList()
顺便说一句,我正在使用gremlin_python
我发现了这个问题(在JanusGraph上使用Gremlin限制最短路径查询的深度),这对我有帮助。但这还没有答案。