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