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