Предположим, что я хотел бы преобразовать список строк в целое число, но это не может быть сделано для всех элементов.Python: «Попробуйте» внутри сокращено для ... loop
Я знаю, что это работает:
a = ['2.0','3.0','4.0','5.0','Cherry']
b = []
for k in a:
try:
int(k)
b.append(int(k))
except:
pass
print b
> [2, 3, 4, 5]
Но есть и более короткий способ сделать это? Я думал о чем-то вроде:
b = [try int(k) for k in a]
Это может звучать как глупый вопрос, так как у меня есть рабочее решение, но я часто был показан более короткими способами сделать то же самое и всегда ценил этот вид помощи. Я использую Python 2.7
Спасибо!
Редактировать: извините, я также говорил о плавающей запятой. Я просто изменил свои данные примера
По крайней мере, вы можете опустить автономный избыточный 'int (k)'. – deceze
Никогда, никогда, никогда не делайте пустой 'except', и особенно никогда не делайте этого только для' pass'. –
Редактировать: мой код не работает без исключения. Возникает ошибка в том, что следующий блок кода не был ограничен? – offeltoffel