蟒蛇。如何将for循环的每个实例输出为嵌套列表,列表中的列表

时间:2020-05-03 21:13:33

标签: python

我有一个代码,用于检查范围内的数字是偶数还是奇数,然后分别对它们进行操作。它将操作结果附加到列表中。但是,我试图将for循环的每个实例附加为列表中的单独列表。我该如何修改我的代码?


series = []
for i in range(13, -0, -1):
    while i > 1:
        if i % 2 == 0:
            i = i//2
            series.append(i)
        else:
            i = i*3+1
            series.append(i)
print(series)

2 个答案:

答案 0 :(得分:1)

您需要在for之后定义内部列表,以便在每次迭代时获得一个新的列表,然后将其保存在series

series = []
for i in range(13, -0, -1):
    inner = []
    while i > 1:
        if i % 2 == 0:
            i = i // 2
            inner.append(i)
        else:
            i = i * 3 + 1
            inner.append(i)
    series.append(inner)

[[40, 20, ...], [6, 3,...], ...]

您可能想使用类似dict的格式来保持与导致此列表的值的对应关系

series = {}
for i in range(13, -0, -1):
    keep_i = i
    inner = []
    while i > 1:
        if i % 2 == 0:
            i = i // 2
            inner.append(i)
        else:
            i = i * 3 + 1
            inner.append(i)
    series[keep_i] = list(inner)

{13: [40, 20,...], 12: [6, 3,...],...}

答案 1 :(得分:0)

您可以简单地将[]添加到每个我喜欢的地方:series.append([i])

series = []
for i in range(13, -0, -1):
    while i > 1:
        if i % 2 == 0:
            i = i//2
            series.append([i])
        else:
            i = i*3+1
            series.append([i])
print(series)