Python:如何用if语句判断值是否匹配列表元素并输出
简洁实现需求的几种方法
原代码的问题说明
- 列表定义错误:不能写成
list[4,15,...],正确的列表定义是变量名 = [元素1, 元素2, ...],且不要用list作为变量名(会覆盖Python内置的list类型)。 any()用法错误:any(列表)是判断列表中是否存在布尔值为True的元素(非零数字都视为True),返回的是布尔值,所以i == any(列表)只会在i等于1时成立(因为True等价于1),完全不符合你的需求。
方法1:直接遍历目标列表(最简洁,若无需遍历0-66)
如果你的需求只是打印列表中的所有元素,不需要循环0到66,直接遍历列表即可:
target_nums = [4,5,6,17,18,19,23,30,31,32,33,38,39,48,49,52,54,55,56,66] for num in target_nums: print(num)
方法2:用in操作符检查(需遍历0-66时)
必须循环0到66的话,用i in 列表来判断i是否在目标列表中,这是Python中最直接的写法:
target_nums = [4,5,6,17,18,19,23,30,31,32,33,38,39,48,49,52,54,55,56,66] for i in range(0, 67): if i in target_nums: print(i)
方法3:用集合优化查找速度(列表元素较多时)
如果目标列表元素数量很大,把列表转成集合可以让查找操作从O(n)优化到O(1),效率更高:
target_set = {4,5,6,17,18,19,23,30,31,32,33,38,39,48,49,52,54,55,56,66} for i in range(0, 67): if i in target_set: print(i)
内容的提问来源于stack exchange,提问作者ZVY545
相关产品推荐
相关产品推荐

