Skip to main content
 首页 » 编程设计

python之使用列表理解无法执行比较我该如何解决

2025年05月04日22qq78292959

在列表理解中,使用 if 以获得所需的结果,但出现错误。我无法将变量从 char 类型转换为整数。

试过这段代码效果很好

list1=[int(x) for x in input().split()] 
list2=[x for x in list1 if x<5 ] 
print(list2) 

但是一行完成却不行

list1=[int(x) for x in input().split() if x<5] 

或

list1=[x for int(x) in input().split() if x<5] 

不工作

list1 应该打印所有小于 5 的值。

例子 用户输入:2 5 6 8

print(list1) 

应该给出结果 [2,5]

请您参考如下方法:

问题是您正在比较拆分的字符串和整数 (5)。尝试转换为 int在使用 if 检查之前键入陈述。现在两者都应该工作。另外,正如@prashantrana 所指出的,鉴于您的输出,您似乎需要 <=5而不是 <5

如果你想要一个字符串列表,那么使用

list1=[x for x in input().split() if int(x)<=5] 

如果你想要一个整数列表,那么使用

list1=[int(x) for x in input().split() if int(x)<=5]