将字符串转换为正数和负数列表

时间:2013-08-10 17:36:43

标签: python string list tuples converter

如果我的字符串始终为'a,b,c,d,e',其中字母为正数或负数,例如'1,-2,3,4,-5',我想将其转换为元组,例如(1,-2,3, 4,-5),我该怎么做?

3 个答案:

答案 0 :(得分:6)

一种方法是使用ast.literal_eval

  

安全地评估表达式节点或包含Python表达式的字符串。提供的字符串或节点可能只包含以下Python文字结构:字符串,数字,元组,列表,dicts,布尔值和None

     

这可用于安全地评估包含来自不受信任来源的Python表达式的字符串,而无需自己解析值。

>>> import ast
>>> ast.literal_eval('1,-2,3,4,-5')
(1, -2, 3, 4, -5)

答案 1 :(得分:4)

,上拆分并映射到int()

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

这会产生一个列表;如果您需要一个元组,只需将其包裹在tuple()调用中:

tuple(map(int, inputstring.split(',')))

在Python 3中,map()返回一个生成器,因此您将使用列表推导来生成列表:

[int(el) for el in inputstring.split(',')]

演示:

>>> inputstring = '1,-2,3,4,-5'
>>> map(int, inputstring.split(','))
[1, -2, 3, 4, -5]
>>> tuple(map(int, inputstring.split(',')))
(1, -2, 3, 4, -5)

答案 2 :(得分:1)

另一种方式:

>>> inputlist = '1,-2,3,4,-5'
>>> tuple(int(x) for x in inputlist.split(','))
(1, -2, 3, 4, -5)
>>>