if elif else 块对每个案例进行评估

if elif else blocks evaluate for every case

我正在尝试将迭代器附加到列表,但下面的代码会针对每种情况进行评估。

Less7=Head7=Over7=[]
i=0

for i in range(0,10):
    if i<7:
        Less7.append(i)

    elif i==7:
        Head7=i

    else:
        Over7.append(i)

我得到的结果是: Head7是一个int值7 Less7 和 Over7 是列表 - [0,1,2,3,4,5,6,7,8,9]

我想要的结果是:

Less7=[0,1,2,3,4,5,6]

Head7=[7]

Over7=[8,9]

我确定这是基本的,你能给我指出正确的方向吗? 我的想法是它与数据类型有关。 当我逐步执行代码时,即使 Head7 也会计算 [0,1,2,3,4,5,6] 但是当 i=7 时它会正确分配值,但我希望它在列表中。

您需要创建三个列表,每个可能的结果对应一个列表:

less_than_7, is_7, greater_than_7 = [], [], []

for i in range(0, 10):
    if i < 7:
        less_than_7.append(i)
    elif i > 7:
        greater_than_7.append(i)
    else:
        is_7.append(i)

Less7=Head7=Over7=[] 创建一个由三个名称引用的列表,因此您的输出将与追加到同一个列表相同,那么您在第一种和最后一种情况,Head7=i 设置 Head7 等于 i/7.