Edx课程/ Python基础/使用pop()反转字符串,同时插入

时间:2019-01-10 03:47:17

标签: python-3.x

这是一个简单的问题,可以在插入时使用pop()使代码打印输入字符串的反向字符串。我猜肯定有一种更简单的方法可以做到,但是我想知道为什么我的代码有错误的结果。我请你帮忙!

string=input('enter the string you want to reverse: ')
l_string=list(string)
print(l_string)
l_r_string=[]

while l_string:
    l_r_string.insert(-1,l_string.pop())
    print(l_rstring) #to check how the string is made up every step

print(''.join(l_r_string))

我认为插入的索引部分有问题。我只是将其设置为“ -1”以相反的顺序保存它。但是结果却是这样。

enter the string you want to reverse: 1234
['1', '2', '3', '4']
['4']
['3', '4']
['3', '2', '4']
['3', '2', '1', '4']
3214

3 个答案:

答案 0 :(得分:1)

这样做:

s[::-1]

向后迭代字符串。

答案 1 :(得分:1)

some_numbers =[1,2,3,4,5,6,7,8,9,11,22,33,44,55,66,77]

rev_string = []

while len(some_numbers):

    rev = some_numbers.pop(0)

    rev_string.insert(0,rev)


print(rev_string)

答案 2 :(得分:0)

我不太清楚为什么insert方法会这样做。我的猜测是,由于某种原因,它在最后一个元素上保留4,然后只需要在此之前插入每个元素,但是另一种使用while,insert和pop的方法是使用len(l)而不是-1为索引。因此使用:

    while l_string:
        l_r_string.insert(len(l_r_string),l_string.pop())
        print(l_r_string)

这将在列表末尾插入每个。 希望这会有所帮助!