1

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

你好,

我有一个这种格式的字符串:

>>> x="(174,185)"
>>> x
'(174,185)'

如何将此字符串转换为列表,以便我可以将索引 0 作为 174 访问,将索引 1 作为 185 访问?我正在使用 Python 2.5 和 Win 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'
>>> 
4

1 回答 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)
>>> 
于 2011-04-13T06:55:01.413 回答