如何将字符串转换为Python中的整数?
我有一个像这样的MySQL查询的元组元组:
T1 = (('13', '17', '18', '21', '32'),
('07', '11', '13', '14', '28'),
('01', '05', '06', '08', '15', '16'))
我想将所有字符串元素转换为整数,并将它们放回列表中:
T2 = [[13, 17, 18, 21, 32], [7, 11, 13, 14, 28], [1, 5, 6, 8, 15, 16]]
我试图用eval
来实现它,但还没有得到任何体面的结果。
int()
是Python标准内置函数,用于将字符串转换为整数值。 你用包含一个数字的字符串作为参数来调用它,并且它返回转换为整数的数字:
print (int("1") + 1)
以上打印2
。
如果你知道你的列表的结构,T1(它只包含列表,只有一个级别),你可以在Python 2中做到这一点:
T2 = [map(int, x) for x in T1]
在Python 3中:
T2 = [list(map(int, x)) for x in T1]
你可以用列表理解来做到这一点:
T2 = [[int(column) for column in row] for row in T1]
内部列表理解( [int(column) for column in row]
)建立一个list
的int
从一个序列s int
-able对象,如十进制,在row
。 外部列表理解( [... for row in T1])
)构建应用于T1
每个项目的内部列表理解的结果的列表。
如果任何行包含无法通过int
转换的对象,则代码片段将失败。 如果要处理包含非十进制字符串的行,则需要更智能的函数。
如果你知道行的结构,你可以通过调用行的函数来替换内部列表理解。 例如。
T2 = [parse_a_row_of_T1(row) for row in T1]
我宁愿只使用理解列表:
[[int(y) for y in x] for x in T1]
链接地址: http://www.djcxy.com/p/31799.html
上一篇: How to convert strings into integers in Python?
下一篇: Join with newline