【发布时间】:2026-02-18 05:30:01
【问题描述】:
我们有大量的字符串,其中包含可能是整数的子字符串,例如。
mystring = "123 345 456 567 678 789"
并且需要验证:
一个。每个子字符串实际上是一个整数,例如。 mystring = "123 345 456 567 abc 789" 在到达 'abc' 时失败
b.每个整数都在 0 mystring = "123 -345 456 567 678 789" 在达到 '-345' 时失败
一种解决方案是:
mylist= [int(i) for i in mystring.split() if isinstance(int(i), int) and (0 <= int(i) <= 10000)]
问题是:
我。在列表推导中,对于每个 i,int(i) 是被评估一次还是多次?
二。有没有更快的替代方法(因为字符串的体积很大,每个字符串可能包含数百到数千个整数)?
【问题讨论】:
-
一个。每个整数都是一个整数 ??
-
将列表分配给名为
mystring的变量听起来是个相当糟糕的主意? -
一个。他显然是指子字符串。
mystring绝对应该是该作业左侧的mylist。 -
@jgritty 将上次分配更改为 mylist。
标签: python string validation integer