迭代List以查看是否存在特定值

时间:2017-04-24 18:46:45

标签: python list loops

我有一个数组,我需要检查一个特定的值。如果List中存在该值,我需要能够将其返回到List之外的变量。在这种情况下,我想查看列表中的任何值是否已“预订”。如果列表中的所有值都“可用”,则可用性应为“可用”,但如果一个或多个值已“预订”,则可用性需要“预订”

array = ['booked','available','available']

availability = 'available'

for id in array:
    temp_avail = id
    if temp_avail == 'available':
        global availability
        availability = 'available'
    elif temp_avail == 'booked' or availability == 'booked':
        global availability
        availability = 'booked'
    else:
        global availability
        availability = 'error'

print(availability)

1 个答案:

答案 0 :(得分:4)

你在这里不需要global;你在模块层面工作。

您只需将内置all ternary operator 一起使用即可:

availability = 'available' if all(i=='available' for i in array) else 'booked'

all会检查列表中的所有项目是否为available,而三元组会根据all表达式的真实性返回分配值