看到的谜语重复值

问题描述 投票:0回答:2
def riddle(x):
    list=[]
    i=0
    for i in range(0,len(x)):
        for j in range(i,len(x)):
            for k in range(j,len(x)):
                if ((x[i]+x[j]+x[k]) ==30) and x[i]!=x[j]!=x[k]:
                    list.append((x[i],x[j],x[k]))
                    i = i+1
                    j= j+1
                    k = k+1
    return(list)
print(riddle(x))
x= [2,3,5,8,6,89,20,15,7]

列出输出,我们得到重复的值(3,20,7)如何删除重复的值有没有更简单的方法来解决此问题

python-3.x
2个回答
0
投票

首先,不要将名称“列表”用于列表,因为它是关键字。我改用list1。


0
投票
def riddle(x):
    ls = []
    for i in range(len(x)):
            for j in range(i+1,len(x)):
                for k in range(j+1,len(x)):
                    u = x[i]+x[j]+x[k]
                    if u==30:
                        ls.append([x[i],x[j],x[k]])
    return ls

x = [2,3,5,8,6,89,20,15,7]
 riddle(x)
Out[58]: [[2, 8, 20], [3, 20, 7], [8, 15, 7]]
© www.soinside.com 2019 - 2024. All rights reserved.