如何停止循环中相同元素的重复

问题描述 投票:0回答:1

我在python的循环中遇到问题。

我重复了相同的元素,但不知道为什么。

这是我的代码:

x=0
liste=[]
for x in range(len(valeur)):
    for i in range(x+1,len(valeur)):
        ed = nltk.edit_distance(valeur[x],valeur[i])
        dico={"titre":valeur[x],"titre_compare":valeur[i], "distance":ed}
        a=((dico["titre"],(dico["titre_compare"]),(dico["distance"])))

        for z in range (len(a)):
            if a[2]<6 and a[0] != ' None ' and a[1] != ' None ' and a[2] != ' None ' :

                print(a)

我的代码运行完美,但是我不明白为什么得到这个:

(' K. Hardono ', ' Cardon. ', 5)
(' K. Hardono ', ' Cardon. ', 5)
(' K. Hardono ', ' Cardon. ', 5)

不仅限于此:

(' K. Hardono ', ' Cardon. ', 5)

我尝试搜索并发现了它:

例如,以我为例:

a=((dico["titre"],"&&",(dico["titre_compare"]),"&&",(dico["distance"])))

返回5次

(' K. Hardono ', ' Cardon. ', 5)
(' K. Hardono ', ' Cardon. ', 5)
(' K. Hardono ', ' Cardon. ', 5)
(' K. Hardono ', ' Cardon. ', 5)
(' K. Hardono ', ' Cardon. ', 5)

所以我知道我对同一元素的重复提供了我字典中用python编写的数字元素,但我不知道如何只能有1个元素而不是重复。

谢谢您能帮我

python loops
1个回答
1
投票

好吧,看起来您正在制作的元组a的长度为3,对吗?

因此,当您使用z进行下一个for循环时,z将在循环期间采用[0,1,2]的值。该循环每次都执行相同的操作(不依赖z),因此它将打印a 3次。

再次用z查看循环,想一想您要做什么。同样,在您定义元组a的位置,括号也有点不合时宜。

© www.soinside.com 2019 - 2024. All rights reserved.