2024-09-25 16:25:41 发布
网友
基本上我想这样做
return [ row for row in listOfLists if row[x] is int ]
但是行[x]是一个文本值,它可以或不可以转换为int
我知道这可以通过:
try: int(row[x]) except: meh
但最好是一条单行线。
有什么想法吗?
使用正则表达式怎么样?(如果需要,请使用re.compile):
re.compile
import re ... return [row for row in listOfLists if re.match("-?\d+$", row[x])]
如果只处理整数,则可以使用^{}:
Return true if all characters in the string are digits and there is at least one character, false otherwise.
[row for row in listOfLists if row[x].isdigit()]
或者如果可能是负整数(但应该是允许的):
row[x].lstrip('-').isdigit()
当然,只有在没有前导或尾随空白字符(也可以去掉)的情况下,这一切才有效。
或者
return filter(lambda y: y[x].isdigit(), listOfLists)
或者如果你需要接受负整数
return filter(lambda y: y[x].lstrip('-').isdigit(), listOfLists)
虽然列表理解很有趣,但在这个例子中我发现它不太清楚。
使用正则表达式怎么样?(如果需要,请使用
re.compile
):如果只处理整数,则可以使用^{} :
或者如果可能是负整数(但应该是允许的):
当然,只有在没有前导或尾随空白字符(也可以去掉)的情况下,这一切才有效。
或者
或者如果你需要接受负整数
虽然列表理解很有趣,但在这个例子中我发现它不太清楚。
相关问题 更多 >
编程相关推荐