首页 > 解决方案 > 求和之谜看到重复值

问题描述

    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]

标签: python-3.x

解决方案


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]]

推荐阅读