【发布时间】:2017-02-21 19:53:56
【问题描述】:
我有一个结构化的列表列表,其中每个元素都是一个字符串。我想将此列表列表中的某些(已知索引,始终相同)元素转换为整数。我尝试过使用列表理解或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']]
【问题讨论】:
-
使用字典列表而不是列表列表怎么样?您的内部元素似乎是结构化的,这将更适合使用字典甚至创建一个类。
-
要转换的元素是否总是在每个列表的相同位置?
-
是的,使用类或字典可能更合适。
标签: python python-3.x