为了账号安全,请及时绑定邮箱和手机立即绑定

如何按不同条件过滤列表?

如何按不同条件过滤列表?

侃侃无极 2021-11-30 15:38:48
我编写了以下代码:list_1 = [5, 18, 3]list_2 = []for element in list_1:    if element < 0:        list_2.append(element)    elif element % 9 == 0:        list_2.append(element)    elif element % 2 != 0:         list_2.append(element)    else:        print('No number is valid')print(list_2)问题是这会返回至少满足 3 个条件之一的数字列表。我想要的结果是满足所有三个条件的数字列表。我怎么能做到这一点?
查看完整描述

3 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

使用结合所有条件的单个 if 语句

if element<0 and element%9==0 and element%2!=0 :
    list2.append(element)


查看完整回答
反对 回复 2021-11-30
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

尝试列表理解:

list_2 = [i for i in list_1 if i<0 and i%9==0 and i%2 !=0]


查看完整回答
反对 回复 2021-11-30
?
慕斯王

TA贡献1864条经验 获得超2个赞

您还可以使用函数filter()&代替AND|代替OR):

list(filter(lambda x: x < 0 & x % 9 == 0 & x % 2 != 0, list_1)


查看完整回答
反对 回复 2021-11-30
  • 3 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信