假设我有一个列表如下:
a = ['111', 213, 74, '99', 't', '88', '-74', -74]
Run Code Online (Sandbox Code Playgroud)
该列表包含数字类型的字符串,数字和数据类型的字符串.
我认为类似数字的字符串可以转换数字,所以它可以看作一个数字.
这是我的方法:
a = ['111', 213, 74, '99', 't', '88', '-74', -74]
def detect(list_):
for element in list_:
try:
int(element)
except ValueError:
return False
return True
print detect(a)
Run Code Online (Sandbox Code Playgroud)
但它看起来如此冗长且难以理解,所以任何人都有更好的方法来检测它?
另外,我的列表包含负数和负数字的字符串,我该怎么办?
仅适用于正整数:
not all(str(s).isdigit() for s in a)
Run Code Online (Sandbox Code Playgroud)
对于否定:
not all(str(s).strip('-').isdigit() for s in a)
Run Code Online (Sandbox Code Playgroud)
对于小数和负数:
not all(str(s).strip('-').replace('.','').isdigit() for s in a)
Run Code Online (Sandbox Code Playgroud)