如果我的字符串总是'a,b,c,d,e'
采用正数或负数形式的字符串,例如'1,-2,3,4,-5'
,我想将其转换为元组,例如 (1,-2,3,4,-5),我该怎么做?
问问题
1078 次
3 回答
6
一种方法是使用ast.literal_eval
:
安全地评估表达式节点或包含 Python 表达式的字符串。提供的字符串或节点只能由以下 Python 文字结构组成:字符串、数字、元组、列表、字典、布尔值和
None
.这可用于安全地评估来自不受信任来源的包含 Python 表达式的字符串,而无需自己解析值。
>>> import ast
>>> ast.literal_eval('1,-2,3,4,-5')
(1, -2, 3, 4, -5)
于 2013-08-10T17:39:06.560 回答
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)
于 2013-08-10T17:38:38.073 回答
1
另一种方式:
>>> inputlist = '1,-2,3,4,-5'
>>> tuple(int(x) for x in inputlist.split(','))
(1, -2, 3, 4, -5)
>>>
于 2013-08-10T17:42:14.777 回答