誰かが私にこれを説明できますか? 私は実際に回文数の生成に取り組んでいましたが、これが機能しないことがわかりました:
>>> [ 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]
機能しないのですか?ここで何が欠けていますか?どんなポインタでも大歓迎です。乾杯!!