Python:测试值是否可以在列表理解中转换为 int
基本上我想这样做;
return [ row for row in listOfLists if row[x] is int ]
但 row[x] 是一个文本值,可能会或可能不会转换为 int
我知道这可以通过以下方式完成:
try:
int(row[x])
except:
meh
但如果它是单行代码,那就太好了。
有什么想法吗?
Basically I want to do this;
return [ row for row in listOfLists if row[x] is int ]
But row[x] is a text value that may or may not be convertible to an int
I'm aware that this could be done by:
try:
int(row[x])
except:
meh
But it'd be nice to do it is a one-liner.
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果只处理整数,可以使用
str.isdigit()
:或者,如果负整数是可能的(但应该允许):
当然,这一切只有在没有前导或尾随空白字符(也可以被删除)的情况下才有效。
If you only deal with integers, you can use
str.isdigit()
:Or if negative integers are possible (but should be allowed):
And of course this all works only if there are no leading or trailing whitespace characters (which could be stripped as well).
使用正则表达式怎么样? (如果需要,请使用
re.compile
):What about using a regular expression? (use
re.compile
if needed):或者
或者如果您需要接受负整数
尽管列表理解很有趣,但我发现在这种情况下不太清楚。
Or
or if you need to accept negative integers
As fun as list comprehension is, I find it less clear in this case.