在列表理解中,使用 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]
