在元组列表中查找一个元组,如果不存在则添加
Find a tuple in a list of tuples and add if not present
有一个带有元组列表的无向图,其中每个元素都是 (id1,id2) 形式的元组。我必须找到一个新的 (s,t) 是否存在于包含所有边缘的元组列表中,如果不存在则添加元组。 edges 是元组列表
def add_edge(s: str, t: str) -> None:
if (s,t) or (t,s) not in edges:
edges.append((s,t))
return edges
但这无法计算 (a,b) = (b,a)
形式的重复项
这会很有效
def add_edge(s: str, t: str) -> None:
if (s,t) not in edge and (t,s) not in edges:
edges.append((s,t))
return edges
if (s,t) or (t,s) not in edges
这不是你想的那样。 (s,t)
被视为一个单独的条件。所以声明实际上是这样的:
(s,t)
or
(t,s) not in edges
并且由于 (s,t)
是一个 non-empty 序列,所以整个语句自动为真。
有一个带有元组列表的无向图,其中每个元素都是 (id1,id2) 形式的元组。我必须找到一个新的 (s,t) 是否存在于包含所有边缘的元组列表中,如果不存在则添加元组。 edges 是元组列表
def add_edge(s: str, t: str) -> None:
if (s,t) or (t,s) not in edges:
edges.append((s,t))
return edges
但这无法计算 (a,b) = (b,a)
形式的重复项这会很有效
def add_edge(s: str, t: str) -> None:
if (s,t) not in edge and (t,s) not in edges:
edges.append((s,t))
return edges
if (s,t) or (t,s) not in edges
这不是你想的那样。 (s,t)
被视为一个单独的条件。所以声明实际上是这样的:
(s,t)
or
(t,s) not in edges
并且由于 (s,t)
是一个 non-empty 序列,所以整个语句自动为真。