如何根据条件循环列表?

时间:2017-01-13 02:17:41

标签: list loops for-loop traceback

这是我的假设情况: 有一个人在俱乐部外等候的名单。保镖只允许在俱乐部中有18岁或以上ids的人。如果他们未满18岁则被拒绝入院。假设您知道想要输入的人的年龄是18岁,27岁,16岁,17岁。我创建了一个代码来尝试运行它,但是无法让它运行起来。它适用于测试0到99的所有项目,但我只希望它测试列表中的项目。有人能帮我吗?

def powerSetBF(xs):
    powerSet = [] 
    powerSet.append(set([]))
    for x in xs:
        powerSetCopy = powerSet[:]
        withX = [s.add(x) for s in powerSetCopy] # add x to the list of sets 
        powerSet = powerSet.extend(withX) # append those entries
    return powerSet

2 个答案:

答案 0 :(得分:0)

在这种情况下,我建议使用foreach循环然后嵌套在if和else语句中。 foreach循环将遍历整个列表,然后您基本上可以添加上面显示的if和else语句。这是一个使用PHP的例子:

    foreach($age_of_people_waiting as $age) {
    if($age >= 18){
     print("you may enter");
    }else{
    print("sorry, you can not come in");
    }
 }

这样做的是包含年龄的数组,在这种情况下,$ age_of_people_waiting正在转换为数组中每个部分的单个值,该值将作为$ age传递。然后,if语句将检查它所在的特定$ age值是否为18或更高。如果是,它打印“你可以输入”,如果没有,它打印“对不起,你不能进来。”我不确定你使用的是什么编码语言,但是foreach循环很常见并且存在多种语言,所以这是你最好的选择。

答案 1 :(得分:0)

这应该有效:

ages_of_people_waiting_outside_club = [18,27,16,17]
#ages_of_people_waiting_outside_club = range(0,100)
for ids in ages_of_people_waiting_outside_club:
    if ids >= 18:
        print("you may enter")
    else:
        print("sorry, you can not come in")