为什么python会像这样处理字符串列表?..
$ python
Python 2.6.6 (r266:84292, May 27 2013, 05:35:12)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> x = ('sim')
>>> x[0]
's'
虽然可变列表可以做到这一点......
$ python
Python 2.6.6 (r266:84292, May 27 2013, 05:35:12)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> x = ['sim']
>>> x[0]
'sim'
答案 0 :(得分:4)
你在那里没有不可变的list
。你认为你拥有的是tuple
,但它不是。括号仅用于分组。你真的只有一个普通的字符串。如果您想指明tuple
,请使用逗号:
>>> x = ('sim')
>>> x
'sim'
>>> type(x)
<class 'str'>
>>> x = ('sim',)
>>> x[0]
'sim'
>>> type(x)
<class 'tuple'>
答案 1 :(得分:0)
对于其他答案的快速版本(正确):
您必须使用逗号&#39;,&#39;在括号中使它成为一个元组。
如果没有逗号,你只需要一个字符串,实际上该字符串的第一个索引是&#39; s&#39;。