将字符串转换为列表

1 投票
1 回答
3613 浏览
提问于 2025-04-16 15:37

可能重复的问题:
将一个表示列表的字符串转换为实际的列表对象。

你好,

我有一个这样的字符串:

>>> 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)
>>> 

撰写回答