You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中使用比较运算符与not关键字?附代码场景

嘿,咱们就结合你给出的农场动物代码场景,一步步拆解怎么用Python的比较运算符和not关键字,都是非常实用的日常场景哦!

先把基础代码整理清晰,方便后续演示:

animals = ['LION', 'TIGER', 'DEER', 'CHICKEN']
new_catch = []
farm = [
    {'LION':'carnivorous', 'legs': 4 , 'strength': 98.7, 'kills': True},
    {'TIGER':'carnivorous', 'legs': 4 , 'strength': 100.18, 'kills': True},
    {'DEER':'herbivorous', 'legs': 4, 'speed': 87.3, 'kills': False},
    {'CHICKEN':'omnivorous', 'legs': 2, 'speed': 5, 'strength':2.3, 'kills': False},
    {'PIG': 'omnivorous', 'legs': 4, 'strength': 55.0, 'kills': True, 'speed': 20}
]

一、比较运算符的核心用法(>、<、==、!=、>=、<=)

比较运算符就是用来对比数值、字符串的大小或相等性,在这个农场场景里,我们可以用它快速筛选符合条件的动物。

1. 筛选力量超标的猛兽

比如我们要把力量大于90的动物抓进new_catch:

for animal_dict in farm:
    # 先拿到动物名称和对应的力量值
    animal_name = next(iter(animal_dict.keys()))
    strength = animal_dict.get('strength')
    # 用>运算符判断力量是否达标
    if strength > 90:
        new_catch.append(animal_name)
print(new_catch)  # 输出: ['LION', 'TIGER']

这里strength > 90直接帮我们锁定了狮子和老虎这两个大猛兽。

2. 找非四条腿的动物

用!=(不等于)运算符,筛选腿数不是4条的动物:

non_four_leg_animals = []
for animal_dict in farm:
    legs = animal_dict.get('legs')
    if legs != 4:
        animal_name = next(iter(animal_dict.keys()))
        non_four_leg_animals.append(animal_name)
print(non_four_leg_animals)  # 输出: ['CHICKEN']

一条简单的legs != 4,就精准揪出了农场里唯一两条腿的鸡。

3. 筛选速度达标动物

用>=(大于等于)运算符,找速度不低于20的动物:

fast_animals = []
for animal_dict in farm:
    speed = animal_dict.get('speed', 0)  # 没有speed字段就默认0
    if speed >= 20:
        animal_name = next(iter(animal_dict.keys()))
        fast_animals.append(animal_name)
print(fast_animals)  # 输出: ['DEER', 'PIG']

>=确保我们不会漏掉刚好速度为20的猪,同时包含了跑得飞快的鹿。

二、not关键字:给判断做“反向操作”

not的作用就是对布尔值取反——把True变False,False变True,用在场景里可以轻松筛选“不符合某条件”的动物,或者判断元素是否不存在。

1. 找温顺不杀生的动物

原数据里kills是布尔值,我们要找不杀生的动物,直接用not取反:

peaceful_animals = []
for animal_dict in farm:
    kills = animal_dict.get('kills')
    if not kills:  # 等价于 kills == False,写法更简洁
        animal_name = next(iter(animal_dict.keys()))
        peaceful_animals.append(animal_name)
print(peaceful_animals)  # 输出: ['DEER', 'CHICKEN']

not kills比写kills == False更符合日常说话的逻辑,读起来也更顺畅。

2. 找原始列表里没有的新动物

用not in组合,判断动物是否不在初始animals列表里:

new_animals = []
for animal_dict in farm:
    animal_name = next(iter(animal_dict.keys()))
    if animal_name not in animals:  # 直接判断不属于原始列表
        new_animals.append(animal_name)
print(new_animals)  # 输出: ['PIG']

这个组合在数据校验、找新增元素时特别好用,这里就精准找出了原始名单里没有的猪。

3. 结合比较运算符和not:排除弱小动物

比如我们要排除力量小于50的动物,用not加<:

strong_enough = []
for animal_dict in farm:
    strength = animal_dict.get('strength', 0)
    if not strength < 50:  # 等价于 strength >= 50,两种写法都可以
        animal_name = next(iter(animal_dict.keys()))
        strong_enough.append(animal_name)
print(strong_enough)  # 输出: ['LION', 'TIGER', 'PIG']

你可以根据自己的阅读习惯选写法,有时候not的表述更贴合自然语言,比如“力量不小于50”。

三、综合实战:多条件筛选

比如我们要找不是食肉动物,且速度大于10的动物,把比较运算符、not和逻辑运算符结合起来:

target_animals = []
for animal_dict in farm:
    animal_name = next(iter(animal_dict.keys()))
    diet = animal_dict.get(animal_name)
    speed = animal_dict.get('speed', 0)
    # 不是食肉动物,同时速度超过10
    if not diet == 'carnivorous' and speed > 10:
        target_animals.append(animal_name)
print(target_animals)  # 输出: ['DEER', 'PIG']

这里not diet == 'carnivorous'取反了“是食肉动物”的判断,再结合speed >10的条件,就精准筛选出了符合要求的鹿和猪。

内容的提问来源于stack exchange,提问作者Pxlotus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:43:57