Python:在列表中不存在的位置追加新元组

Python:在列表中不存在的位置追加新元组,python,Python,我有三张单子。我想做的是在Tentree中查找第三项,如果该项不在集合中,那么我想将第三项附加到STree中 我将在I[2://code>中为循环testree[I]使用 给定数据: TempTree = [(3.0, 5.0), (1.0, 7.0), (5.0, 4.0), (3.0, 4.0), (0.0, 7.0), (1.0, 2.0), (7.0, 8.0), (2.0, 3.0), (8.0, 6.0), (0.0, 1.0), (2.0, 5.0), (2.0, 8.0), (6

我有三张单子。我想做的是在Tentree中查找第三项,如果该项不在集合中,那么我想将第三项附加到STree中

我将在
I[2://code>中为
循环
testree[I]
使用

给定数据:

TempTree = [(3.0, 5.0), (1.0, 7.0), (5.0, 4.0), (3.0, 4.0), (0.0, 7.0), (1.0, 2.0), (7.0, 8.0), (2.0, 3.0), (8.0, 6.0), (0.0, 1.0), (2.0, 5.0), (2.0, 8.0), (6.0, 5.0), (7.0, 6.0)]
Set = [(3.0, 5.0), (5.0, 3.0), (1.0, 7.0), (7.0, 1.0)]
SpanningTree = [(3.0, 5.0), (1.0, 7.0)]
我的代码:

for x in TempTree[2]:
    for y in Set:
        if x != y:
            SpanningTree.append(TempTree[2])
print(SpanningTree)
我的结果是:

[(3.0, 5.0), (1.0, 7.0), (5.0, 4.0), (5.0, 4.0), (5.0, 4.0), (5.0, 4.0), (5.0, 4.0), (5.0, 4.0), (5.0, 4.0), (5.0, 4.0)]
所需结果:

[(3.0, 5.0), (1.0, 7.0), (5.0, 4.0)]

你在找什么

if TempTree[2] not in Set:
    SpanningTree.append(TempTree[2])

在集合上每次迭代的代码中,您检查当前元素是否不等于试探树[2],并每次将其追加到SpanningTree(而不是检查并追加一次)。

显然,您正在查找试探树[2],即您不检查元组,而是检查其中的每个数字(5.0,4.0)。在这种情况下,当然是x=因为x是一个浮点数,y是一个元组,所以得到了元组的2*4加法。你应该做什么(没有检查,但这是主要思想):


另外,最好使用python集类型而不是列表来防止多次出现。

我做了一个小改动-添加了一个中断,这样在将诱惑树[2]添加到列表后,它就不会继续迭代。
for x in Set:
    if x != TempTree[2]:
            SpanningTree.append(TempTree[2])
            break
print(SpanningTree)