我在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个元素而不是重复。
谢谢您能帮我
好吧,看起来您正在制作的元组a
的长度为3,对吗?
因此,当您使用z
进行下一个for循环时,z
将在循环期间采用[0,1,2]的值。该循环每次都执行相同的操作(不依赖z
),因此它将打印a
3次。
再次用z
查看循环,想一想您要做什么。同样,在您定义元组a
的位置,括号也有点不合时宜。