У меня есть структурированный список списков, в которых каждый элемент является строкой. Я хочу преобразовать определенные (известные индексы, всегда одни и те же) элементы в этот список списков в целые числа. Я попытался использовать понимание списка или метод isdigit()
(нет отрицательных элементов), но он не может понять это.Преобразование определенных элементов в список списков из строки в целое число
list_of_lists = [['spam','1','toast'], ['bacon','5','eggs'], ['juice', '8', 'tea']]
new_breakfast_list = [[int(element) for element in row] for row in list_of_lists]
Приведенный выше код понятным дает ValueError: invalid literal for int() with base 10: 'spam'
при попытке преобразования первого элемента. Я хочу, либо игнорировать ошибку и двигаться вперед к следующему элементу или, может быть, в частности, петлю на что-то вроде list_of_lists[i][1]
, так что я могу получить:
print(new_breakfast_list)
[['spam', 1, 'toast'], ['bacon', 5, 'eggs'], ['juice', 8, 'tea']]
Как насчет использования списка словарей вместо списка списков? Ваши внутренние элементы кажутся структурированными, что было бы более подходящим для использования словаря или даже создания класса. – danielunderwood
Является ли элемент, который вы хотите конвертировать, всегда в том же положении для каждого списка? – nloewen
Да, использование класса или словаря, вероятно, будет более подходящим. – codymccodeface