Skip to main content
 首页 » 编程设计

python之列表的具体迭代方法

2025年05月04日14lyhabc

对于列表,例如:

list1 = [1, 2, 3, 4] 

遍历整数以获得返回值的最佳方法是什么:

[1, (1,2), (1,2,3), (1,2,3,4), 2, (2, 3), (2,3,4) 3, (3,4), 4] 

也就是在不重新排列数字的情况下获得所有组合。

我尝试了一个想法,比如

def practice(list1): 
    list2 = [] 
    for i in list1: 
        for j in list1: 
            list2.append((i, j)) 
    return list2 

返回

[(1, 1), (1, 2), (1, 3), (1, 4), (2, 1), (2, 2), (2, 3), (2, 4), (3, 1), (3, 2), (3, 3), (3, 4), (4, 1), (4, 2), (4, 3), (4, 4)] 

但不是我想要的。

很抱歉,如果这很简单,对这种语言的语法和功能还是陌生的!

请您参考如下方法:

您可以使用这样的生成器来生成列表的所有可能的连续切片,然后区分单例的大小写:

def practice(list1): 
    for i in range(len(list1)):  # start index of slice 
        for j in range(i, len(list1)):  # end index [-1] 
            # differentiate singleton cases 
            yield list1[i] if i==j else tuple(list1[i:j+1]) 
 
list(practice([1,2,3,4])) 
# [1, (1, 2), (1, 2, 3), (1, 2, 3, 4), 2, (2, 3), (2, 3, 4), 3, (3, 4), 4]