如何在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

