【发布时间】:2012-04-09 19:16:20
【问题描述】:
在 Python 中,我想转换一个字符串列表:
l = ['sam','1','dad','21']
并将整数转换为整数类型,如下所示:
t = ['sam',1,'dad',21]
我试过了:
t = [map(int, x) for x in l]
但显示错误。
如何将列表中的所有 intable 字符串转换为 int,而将其他元素保留为字符串?
我的列表可能是多维的。一种适用于通用列表的方法会更好:
l=[['aa','2'],['bb','3']]
【问题讨论】:
-
请注意,
[map(int, x) for x in l]会尝试将每个字符串逐个字符地转换为整数的列表。您的意思可能是map(int, l)或[int(x) for x in l]。 -
[int(x) for x in l]将抛出ValueErrors 用于非数字字符串。 -
map(lambda line: [int(i) if i.isdigit() else i for i in line.split(",")])- 注意这不考虑负整数。