将数字字符串转换为数字列表

时间:2018-12-24 12:17:32

标签: python string list split

l='2,3,4,5,6'

期望:

[2,3,4,5,6]

在python中如何转换为以上格式

第一个是一串由一些数字组成的字符串,我希望得到一列相同的数字。

6 个答案:

答案 0 :(得分:4)

就这么简单:

print [int(s) for s in l.split(',')]

答案 1 :(得分:3)

您可以使用list comprehension

l='2,3,4,5,6'

result = [int(i) for i in l.split(',')]
print(result)

输出

[2, 3, 4, 5, 6]

以上等效于以下for循环:

result = []
for i in l.split(','):
    result.append(i)

您也可以使用map

l = '2,3,4,5,6'
result = list(map(int, l.split(',')))
print(result)

输出

[2, 3, 4, 5, 6]

答案 2 :(得分:3)

通过list comprehension尝试这种简单直接的方法。

list_of_numbers = [int(i) for i in l.split(",")]

或者,您可以修复字符串,使其成为“字符串列表”,然后使用literal_eval

import ast
s = "[" + l + "]'
list_of_numbers = ast.literal_eval(s)

答案 3 :(得分:2)

您可以使用mapsplit进行转换。

map(int, l.split(','))

示例:

l='2,3,4,5,6'
print(map(int, l.split(',')))

输出

[2, 3, 4, 5, 6]

答案 4 :(得分:1)

您还可以像这样使用地图:

list(map(int,[i for i in l if i.isdigit()]))

答案 5 :(得分:0)

给出:l='2,3,4,5,6'

惰性方式:output=eval('['+l+']')

Python 3.6+(使用fStrings)的惰性方式:output=eval(f"[{l}]")