字符串到int转换的列表

时间:2016-11-26 09:52:10

标签: python list python-3.x

我想将list个python元素从str转换为int

我的初始列表如下所示:

l1 = ['723', '124', '1,211', '356']

我试过的代码:

l1 =  list(map(int, l1))

导致错误告诉我:

ValueError: invalid literal for int() with base 10: '1,211'

或者,我尝试mapfloat

l1 =  list(map(float, l1))

但是,这也导致了一个错误:

ValueError: could not convert string to float: '1,211'

我使用map函数在代码中尝试了intfloat。任何人都可以在我出错的地方纠正我。

3 个答案:

答案 0 :(得分:4)

intfloat映射到包含','的值将失败,因为将str转换为浮点数或整数要求它们表示正确形成的数字(Python不允许','作为浮动的千位分隔符,它与元组冲突)

如果','是千位分隔符,请在您提供给replace(',', '')的理解中使用map(注明@tobias_k)并立即应用int

r = list(map(int , (i.replace(',', '') for i in l1)))

获取r的所需结果:

[723, 124, 1211, 356]

答案 1 :(得分:2)

使用简单的列表理解来做到这一点。

>>> l1 = ['723', '124', '1,211', '356']
>>> [int(i.replace(',','')) for i in l1]
[723, 124, 1211, 356]

答案 2 :(得分:1)

这可能会有所帮助:

l1 = ['723', '124', '1,211', '356']
l1 = [int(i.replace(',','')) for i in l1]
for x in l1:
    print("{:,}".format(x))

输出:

723
124
1,211
356