Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python如何将for循环的每个实例输出为嵌套列表,列表中的列表_Python - Fatal编程技术网

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

python如何将for循环的每个实例输出为嵌套列表,列表中的列表,python,Python,我有一个代码,检查范围内的数字是偶数还是奇数,并分别对它们执行操作。它将操作结果附加到列表中。但是,我试图将for循环的每个实例作为一个单独的列表附加到一个列表中。如何修改代码以实现此目的 series = [] for i in range(13, -0, -1): while i > 1: if i % 2 == 0: i = i//2 series.append(i) else:

我有一个代码,检查范围内的数字是偶数还是奇数,并分别对它们执行操作。它将操作结果附加到列表中。但是,我试图将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)


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

您可能希望使用类似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,...],...}
您只需在每个i like so:series上添加[]。追加[i]:


结果将是序列列表/字典中的内部列表。在序列列表/字典中只有一个项目内部列表,因为无论条件如何,我都会被附加到内部列表中。也许应该有两份清单。不确定。@AchuthVarghese从读取for循环的每个实例作为一个单独的列表,所以每次运行都应该放在一个单独的列表中,这并不是说if/else,只是for的每次运行都在一个列表中谢谢,但您的示例是for while循环,我需要for循环。阿兹罗做对了。请继续贡献,欢迎!
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,...],...}
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)