如何检测列表的非数量?

Bur*_*ing 4 python list

假设我有一个列表如下:

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)

但它看起来如此冗长且难以理解,所以任何人都有更好的方法来检测它?

另外,我的列表包含负数和负数字的字符串,我该怎么办?

Hay*_*lou 6

仅适用于正整数:

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)