Python #如何过滤给定元组中的回文数并将其保存在元组中

Python #如何过滤给定元组中的回文数并将其保存在元组中,python,Python,如何过滤给定元组中的回文数并将其保存在元组中 我的代码: w = (10,11,12,21,22,101,123,111,152) for i in w: if i[:]==i[-1:]: print(i) Error : TypeError Traceback (most recent call last) <ipython-input-143-b2b3cfdef377> in <mo

如何过滤给定元组中的回文数并将其保存在元组中

我的代码:

w = (10,11,12,21,22,101,123,111,152)

for i in w:
    if i[:]==i[-1:]:
        print(i)

Error : TypeError                                 Traceback (most recent call last)
<ipython-input-143-b2b3cfdef377> in <module>
      7 
      8 for i in w:
----> 9     if i[:]==i[-1:]:
     10         print(i)

TypeError: 'int' object is not subscriptable
w=(10,11,12,21,221011123111152)
对于w中的i:
如果i[:]==i[-1:]:
印刷品(一)
错误:TypeError回溯(最近一次调用上次)
在里面
7.
8对于w中的i:
---->9如果i[:]==i[-1:]:
10印刷品(一)
TypeError:“int”对象不可下标

将整数转换为字符串。另外,您没有正确使用字符串的反向切片

w = (10,11,12,21,22,101,123,111,152)

for i in w:
    if str(i) == str(i)[::-1]:
        print(i)
输出:

11
22
101
111
(11, 22, 101, 111)
您还提到要将结果保存在元组中。请使用以下选项:

tuple(i for i in w if str(i) == str(i)[::-1])
输出:

11
22
101
111
(11, 22, 101, 111)
请尝试以下代码:

w = (10,11,12,21,22,101,123,111,152)
for i in w:
    if str(i)[:]==str(i)[::-1]: 
        print(i)
不能对整数值使用索引。
  • i[:]
    不起作用
  • str(i)[:]
  • 另外,
    str(i)[:]
    str(i)
    相同,
    str(i)[-1:][/code>只取数字的最后一位

    如果你想把号码颠倒过来,你必须使用
    str(i)[::-1]

    这应该很好:

    w = tuple(i for i in w if str(i) == str(i)[::-1])
    print(w)
    

    检查是否更好地了解切片操作员:

    感谢您的帮助!(y) 谢谢你的回答!这就是我一直在寻找的。。切片一个整数值!谢谢