Python 使用列表理解无法执行比较我如何修复它

Python 使用列表理解无法执行比较我如何修复它,python,python-3.x,Python,Python 3.x,在列表理解中,使用if来获得所需的结果,但我得到了一个错误。我无法将变量从char类型转换为整数 我试过了,这段代码运行得很好 list1=[int(x) for x in input().split()] list2=[x for x in list1 if x<5 ] print(list2) 应该给出结果 [2,5]问题是您正在比较拆分的字符串和整数5。在检查if语句之前,请尝试转换为int类型。现在两者都应该起作用了。另外,正如@prashantrana所指出的,考虑到您的输出,

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

我试过了,这段代码运行得很好

list1=[int(x) for x in input().split()]
list2=[x for x in list1 if x<5 ]
print(list2)
应该给出结果
[2,5]

问题是您正在比较拆分的字符串和整数5。在检查if语句之前,请尝试转换为int类型。现在两者都应该起作用了。另外,正如@prashantrana所指出的,考虑到您的输出,您似乎需要问题是您正在比较拆分的字符串和整数5。在检查if语句之前,请尝试转换为int类型。现在两者都应该起作用了。另外,正如@prashantrana所指出的,考虑到您的输出,您似乎需要在int转换之前计算if。因此,您试图将5与字符串进行比较。预期的解决方案可以在其他答案中找到。这里有一个替代方案

因为你可以

s='2 5 6 8'
i=listfilterlambda i:i在int转换之前计算if。因此,您试图将5与字符串进行比较。预期的解决方案可以在其他答案中找到。这里有一个替代方案

因为你可以

s='2 5 6 8'
i=列表过滤器rambda i:i@prashantrana:当然可以。谢谢你的提示。我读了不到5篇文章,并使用了博文中的if语句:在输出Op中,我想他并没有在声明中澄清earlier@prashantrana:是的,我在回答中加了这一点。谢谢again@prashantrana:当然可以。谢谢你的提示。我读了不到5篇文章,并使用了博文中的if语句:在输出Op中,我想他并没有在声明中澄清earlier@prashantrana:是的,我在回答中加了这一点。感谢againIt,通过做一个简单的替换[x对x在[input.split中的inty对y]可能更容易理解它为什么不起作用如果下面的任何答案解决了您的问题?如果答案解决了,请将您认为最好的答案标记为已接受。由于您似乎对堆栈溢出还不熟悉,您应该阅读下面的内容,通过简单的替换:[x代表x in[inty代表y in input.split]如果下面的任何答案能解决您的问题吗?如果答案能解决,请将您认为最好的答案标记为已接受。因为您似乎对堆栈溢出不熟悉,您应该阅读
list1=[int(x) for x in input().split() if x<5]
list1=[x for int(x) in input().split() if x<5]
print(list1)
list1=[x for x in input().split() if int(x)<=5]
list1=[int(x) for x in input().split() if int(x)<=5]