如何使用字符串布尔表达式来筛选列表



我有一个布尔表达式age_str = "age<=3"以及年龄列表age_list = [1,2,3,4],如何使用age_stri来过滤年龄列表?预期输出为[1,2,3]

您可以为此使用eval:

age_str = "age<=3"
age_list = [1,2,3,4]
res = []
for age in age_list:
if eval(age_str):
res.append(age)
print(res)

结果:

[1, 2, 3]

使用eval进行列表理解即可:

age_str = "age<=3"
age_list = [1,2,3,4]
ages = [age for age in age_list if eval(age_str)]
print(ages)

最新更新