吾更爱你 发表于 2022-4-14 08:40

python循环优化问题

本帖最后由 吾更爱你 于 2022-4-14 12:17 编辑


目的:文本title和text如果存在l1中的关键词并且title不在l2关键词中 打印

总感觉我写的代码实在过于繁琐 但想不到怎么优化

l1 = ['苹果', '香蕉', '梨', '西瓜']# 需要关键词
l2 = ['火龙果', '橙子', '芒果', '柠檬']# 禁忌关键词
title1 = '小明爱吃木瓜'
title2 = '小王爱吃西瓜和橙子'
title3 = '小张爱吃香蕉'
title =
text1 = '小明热爱健身喜欢足球'
text2 = '小王喜欢宅在家里,爱吃西瓜和橙子'
text3 = '小张只要能吃香蕉,在哪都行'
text =

for ti, te in zip(title, text):
    f = False
    for a in l1:# 遍历需要的关键词
      if a in ti or a in te:
            f = True
            for b in l2:# 遍历禁忌关键词
                if b in ti:
                  f = False
                  break# 只要存在一个就跳出循环
            break# 只要存在需要关键词就跳出循环
    if f:
      print(ti)

nanhai31 发表于 2022-4-14 10:04

不清楚是啥意思

zxc9989 发表于 2022-4-14 10:58

con是干什么用的,感觉写的逻辑都不对

gzq830510 发表于 2022-4-15 12:12

感觉用any和all函数再配上列表解析会更加的pythonic,比如:
if any(i in ti for i in l1) and all(j not in te for j in l2):
    print(balabala)
页: [1]
查看完整版本: python循环优化问题