python插入未在正确位置插入

python插入未在正确位置插入,python,arrays,list,indexing,Python,Arrays,List,Indexing,我试图使用python的insert查找数字的回文。这是我的职责: def isPalindrome(x): n = [] l = len(str(x)) - 1 for i in str(x): print(l, ":", i) n.insert(l,i) l -= 1 print(n) 数字121的输出: 2 : 1 1 : 2 0 :

我试图使用python的insert查找数字的回文。这是我的职责:

def isPalindrome(x):
        n = []
        l = len(str(x)) - 1
        for i in str(x):
            print(l, ":", i)
            n.insert(l,i)
            l -= 1
        print(n)
数字121的输出:

2 : 1
1 : 2
0 : 1
['1', '1', '2']

我打印出了索引,值组合应该是什么。。。那么,为什么打印的数组会显示['1','1','2'],而不是预期的['1','2','1']?

您创建了一个长度为零的空数组n。然后尝试在位置2插入第一个数字“1”,该数字不存在于空数组中。然后将第二个数字“2”放在位置1(数组的末尾)。然后是位置0(数组开头)的最后一位数字“1”

如果您试图以相反的顺序创建数字数组。您需要将每个数字添加到数组的开头

[], ['1'], ['1','2'], ['1','1','2']
n.insert(0, i)
在位置0['1']插入第一个数字“1”,然后在位置0['2','1']插入第二个数字,然后在开头['1','2','1']插入最后一个数字。或者你可以直接使用这个函数

def isPalindrome(s):
    s = str(s)
    return s == s[::-1]

您创建了一个长度为零的空数组n。然后尝试在位置2插入第一个数字“1”,该数字不存在于空数组中。然后将第二个数字“2”放在位置1(数组的末尾)。然后是位置0(数组开头)的最后一位数字“1”

如果您试图以相反的顺序创建数字数组。您需要将每个数字添加到数组的开头

[], ['1'], ['1','2'], ['1','1','2']
n.insert(0, i)
在位置0['1']插入第一个数字“1”,然后在位置0['2','1']插入第二个数字,然后在开头['1','2','1']插入最后一个数字。或者你可以直接使用这个函数

def isPalindrome(s):
    s = str(s)
    return s == s[::-1]
list.insert()
不会在列表中为您创建位置。它将在末尾插入。您正试图将某些内容插入空列表的位置2。相反,它将附加到列表中,因此插入实际上位于位置0

>>> l = []
>>> l.insert(2, "X")
>>> l
['X']
list.insert()
不会在列表中为您创建位置。它将在末尾插入。您正试图将某些内容插入空列表的位置2。相反,它将附加到列表中,因此插入实际上位于位置0

>>> l = []
>>> l.insert(2, "X")
>>> l
['X']

只需在函数的开头设置l=0,就可以从头到尾推送元素。

只需在函数的开头设置l=0,就可以从头到尾推送元素。

如果某个特定字符串出现回文,是否要查找回文?你可以试试这个
打印(“121”[:-1])
是的,谢谢!但是我仍然想知道为什么我的insert方法没有在正确的索引处插入数字。哦,好的,但是如果您想在我的示例中将字符串包含在列表中,您可以尝试以下
output=[s for s in“ana”[::-1]]
。六羟甲基三聚氰胺六甲醚。。。好的,好的,你能改成
n.append(i)
吗?因为
.insert()
所做的是
i
的值插入到
l
位置,以及它的值是什么。如果是特定字符串,你是否试图找到回文?你可以试试这个
打印(“121”[:-1])
是的,谢谢!但是我仍然想知道为什么我的insert方法没有在正确的索引处插入数字。哦,好的,但是如果您想在我的示例中将字符串包含在列表中,您可以尝试以下
output=[s for s in“ana”[::-1]]
。六羟甲基三聚氰胺六甲醚。。。好的,好的,你能改成
n.append(i)
吗?因为
.insert()
所做的是
i
的值插入到
l
位置,以及它的值是什么。