[英]using list comprehension not able to perform comparison how can i fix it
在列表理解中,使用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)。 在使用if
语句检查之前,尝试转换为int
类型。 现在两者都应该工作。 另外,正如@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]
如果在int转换之前评估if。 因此,您尝试将5与字符串进行比较。 预期的修补程序可以在其他答案中找到。 这是另一种选择。
因为可以 。
s = '2 5 6 8'
i = list(filter(lambda i: i<=5, map(int, s.split())))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.