2011-04-13 114 views
0

可能重複:
Converting a string that represents a list, into an actual list object.轉換字符串列出

喜,

我在這個格式的字符串:

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

我怎麼能轉換這個字符串列出所以t我可以訪問索引0爲174和索引1爲185?我正在使用Python 2.5 & Win XP。 我嘗試了幾種方法,但效果不佳。感謝您的建議。 TQ

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

回答

3

你可以試試這個

y=x[1:-1].split(",") 

是分裂

>>> x="(174,185)" 
>>> map(int, x[1:-1].split(',')) 
[174, 185] 

之前剝去括號你也可以使用literal_eval如果你有python2.6的+

>>> from ast import literal_eval 
>>> literal_eval(x) 
(174, 185) 
>>> 
+0

tq,這個作品很棒!一旦獲得列表,就可以訪問索引。 – maximus 2011-04-13 07:08:52

+0

btw,x [1:-1]是什麼意思? tq – maximus 2011-04-13 07:15:50

+0

是的,我明白你的意思了,你只是在parens中取int值並用逗號分隔它。大。 :) – maximus 2011-04-13 07:25:12