Suppose I have a list as the following:
a = ['111', 213, 74, '99', 't', '88', '-74', -74]
The list contains number-like string, number and string of the data types.
I consider number-like string can convert number, so it's can see as a number.
This is my method:
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)
But it looks so lengthy and unreadable, so anyone has better method to detect it?
Additionally, my list contains negative number and negative-number-like string, how do I do?
For only positive integers:
not all(str(s).isdigit() for s in a)
For negatives:
not all(str(s).strip('-').isdigit() for s in a)
For decimals and negatives:
not all(str(s).strip('-').replace('.','').isdigit() for s in a)
                        a = ['111', 213, 74, '99', 't', '88']
def detect(list_):
    try:
        map(int,list_)
        return True
    except ValueError:
        return False
print detect(a)
                        a = ['111', 213, 74, '99', 't', '88']
print([x for x in a if not str(x).isdigit()])
['t']
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With