任何人都可以向我解释一下吗?我实际上正在研究生成回文数,发现这不起作用:
>>> [ str(x) for x in xrange(10,20) if x == x[::-1] ]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not subscriptable
稍后,运行这个:
>>> [ str(x) for x in xrange(10,20) ]
['10', '11', '12', '13', '14', '15', '16', '17', '18', '19']
这实际上是用数字作为字符串创建列表(我弄错了吗??),同时,这返回一个空集:
>>> [ str(x) for x in xrange(10,20) if x == '12' ]
[]
但这不是:
>>> [ str(x) for x in xrange(10,20) if x == 12 ]
['12']
我的理解是生成列表中的元素是string,type()
也证实了这一点:
>>> type([ str(x) for x in xrange(10,20)][2])
<type 'str'>
那为什么x == x[::-1]
不工作?我在这里想念什么?任何指针都受到高度赞赏。干杯!!