如果elif else阻止评估每个案例

时间:2016-10-04 19:53:21

标签: python python-3.5

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

John departs Berlin for Moscow on flight 200 in seat 100 on 05.10.2016
Mark departs Berlin for Moscow on flight 200 in seat 101 on 05.10.2016

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

我想要的结果是:

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)

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

1 个答案:

答案 0 :(得分:0)

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

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