如何将不稳定的字符串列表转换为int
在Python中,我想转换一个字符串列表:
l = ['sam','1','dad','21']
并将整数转换为整数类型,如下所示:
t = ['sam',1,'dad',21]
我试过了:
t = [map(int, x) for x in l]
但显示错误。
如何将列表中的所有 不稳定 字符串转换为int,而将其他元素保留为字符串?
我的清单可能是多维的。一种适用于通用列表的方法将更可取:
l=[['aa','2'],['bb','3']]
-
我将使用自定义函数:
def try_int(x): try: return int(x) except ValueError: return x
例:
>>> [try_int(x) for x in ['sam', '1', 'dad', '21']] ['sam', 1, 'dad', 21]
编辑: 如果您需要将以上内容应用于列表列表, 为什么在构建嵌套列表时没有将这些字符串转换为int?
无论如何,如果需要,如何迭代此类嵌套列表并应用上述方法只是一个选择问题。
一种方法是:
>>> list_of_lists = [['aa', '2'], ['bb', '3']] >>> [[try_int(x) for x in lst] for lst in list_of_lists] [['aa', 2], ['bb', 3]]
您可以将其重新分配给
list_of_lists
:>>> list_of_lists = [[try_int(x) for x in lst] for lst in list_of_lists]