将字符串转换为列表
可能重复的问题:
将一个表示列表的字符串转换为实际的列表对象。
你好,
我有一个这样的字符串:
>>> x="(174,185)"
>>> x
'(174,185)'
我该如何把这个字符串转换成列表,这样我就可以把索引0当作174,索引1当作185来访问?我在用Python 2.5和Windows XP。我试过几种方法,但都不太好用。谢谢你的建议。
>>> y=x.split(",")
>>> y
['(174', '185)']
>>> y[0]
'(174'
>>> [int(x) for x in x.split(",")]
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
[int(x) for x in x.split(",")]
ValueError: invalid literal for int() with base 10: '(174'
>>>
1 个回答
3
你可以试试这个
y=x[1:-1].split(",")
这个会在分割之前去掉括号
>>> x="(174,185)"
>>> map(int, x[1:-1].split(','))
[174, 185]
如果你使用的是python2.6或更高版本,你也可以用literal_eval
>>> from ast import literal_eval
>>> literal_eval(x)
(174, 185)
>>>