【发布时间】:2014-12-08 13:37:28
【问题描述】:
我是嵌套循环的新手,仍在尝试解决问题。我想遍历两个列表,并根据前两个列表上的一些计算将值附加到一个新列表中。最终,我试图根据 value2 列表中的一系列值来修复 value1 列表中的错误。但是,我想确保嵌套循环中的 value2 列表中的参数是否不满足,它在我的循环中被标记。另外,如果我没有说清楚,我深表歉意:
这是我的两个列表:
value1 = [199, 201, 200, 202, 204, 206, 215, 210]
value2 = [200, 203, 206]
这是我的代码:
result = []
for row1 in value1:
for row2 in value2:
x = row1 - row2
if x == 0:
new_x = row1
elif x == 1:
new_x = row1 - 1
elif x == -1:
new_x = row1 + 1
else:
pass
result.append(new_x)
现在我确实得到了不错的结果:
print(result)
[200, 200, 200, 203, 203, 206, 206, 206]
但请注意,列表的最后三个数字实际上并未在 value2 中满足。我想用“错误”标记这些。我尝试了以下方法:
value1 = [199, 201, 200, 202, 204, 206, 215, 210]
value2 = [200, 203, 206]
result = []
for row1 in value1:
for row2 in value2:
x = row1 - row2
if x == 0:
new_x = row1
elif x == 1:
new_x = row1 - 1
elif x == -1:
new_x = row1 + 1
elif x > 1:
new_x = "ERROR"
elif x < -1:
new_x = "ERROR"
else:
pass
result.append(new_x)
但我最终得到了这个:
print(result)
['ERROR', 'ERROR', 'ERROR', 'ERROR', 'ERROR', 206, 'ERROR', 'ERROR']
最终,我想要这个:
print(result)
[200, 200, 200, 203, 203, 206, 'ERROR', 'ERROR']
我错过了什么?感谢您的宝贵时间!
【问题讨论】:
-
我想我明白为什么你想要
200, 200, 200, 203, 203用于前五个,为什么你想要'ERROR', 'ERROR'用于后两个,但是......为什么'ERROR'而不是206用于第六个? -
哦,是的,很抱歉我没听清楚。我现在将对其进行编辑。
标签: python list for-loop append nested-loops