方法集锦1_python

1.求出列表的所有组合

def getalllist(points):
    res = []
    for i in range(len(points)):
        ##假如是首个值的话,需要单独append进来
        if i == 0:
            res.append([points[i]])
        else:
            res.append([points[i]])
            #同时需要循环前面的res,来进行拼接(注意,此时len(res)只根据最开始进来的来算)
            for j in range(len(res)-1):
                res.append([points[i]]+res[j])
  return res

如果要去除所有列表中,长度为n的所有的列表集合,比如为3:

def getalllist(points,n):
    res = []
    for i in range(len(points)):
        ##假如是首个值的话,需要单独append进来
        if i == 0:
            res.append([points[i]])
        else:
            res.append([points[i]])
            #同时需要循环前面的res,来进行拼接(注意,此时len(res)只根据最开始进来的来算)
            for j in range(len(res)-1):
                res.append([points[i]]+res[j])
    
    new_res = []
    ##最后的时候,在去除掉长度不是3的数组
    while  res != []:
        pop_l = res.pop()
        if len(pop_l) == n:
            new_res.append(pop_l)
        #否则的话,继续,直到最终长度为0
    return new_res

 

posted @ 2020-03-29 17:15  风不再来  阅读(78)  评论(0编辑  收藏  举报