【问题标题】:How to reverse a list of strings without reversed() or [::-1] in Python如何在 Python 中反转没有 reversed() 或 [::-1] 的字符串列表
【发布时间】:2016-04-30 18:05:46
【问题描述】:

我最近发了一篇关于这个的帖子,但没有详细说明,我真的不知道这个网站上的评论是如何工作的,所以我想我会创建另一个有适当细节的帖子(如果可以的话,抱歉不是)

简单地说,我正在编写提示并从用户那里读取字符串的代码(例如:12345)。该字符串可以无限长(例如:123456789123456789 等)。输入此字符串后,我的代码然后从该字符串中获取每个元素并将其放入列表中(例如,12345 变成 ['1', '2', '3', '4', '5']) .

我需要帮助的是在不使用 reversed() 或 [::-1] 的情况下反转这个字符串列表,并让它处理可能无限长的字符串列表(例如,['1', '2', '3', '4', '5'] 变成 ['5', '4', '3', '2', '1'])。

我知道这是非常基本的,但我花了很长时间试图思考如何做到这一点,但由于某种原因,我缓慢的大脑无法掌握如何去做。对我来说最好的学习方式是亲眼目睹它的完成,并解释它是如何工作的(或者我可以查看代码并自己弄清楚“如何”部分)。我将非常感谢您提供这方面的帮助,并提前感谢您!

【问题讨论】:

  • 您不想使用reversed[::-1] 的原因是什么?你想达到什么目标? list(reversed('12345')) 完全完成了这项工作......
  • @ColonelBeauvel,可能正在尝试做一个提到这一点的学校作业。

标签: python string list reverse


【解决方案1】:

这个怎么样

x = input('enter the values:')
x = list(x)

res = []

for i in range(len(x) -1, -1, -1):
    res.append(x[i])

print(res)

【讨论】:

    【解决方案2】:

    除了使用reversed()L[::-1] 之外,您还可以使用list.reverse() 就地 反转列表中的元素:

    >>> L = ['1', '2', '3', '4', '5']
    >>> L.reverse()
    >>> L
    ['5', '4', '3', '2', '1']
    

    您可以使用for 循环自己实现reversed()

    >>> L = ['1', '2', '3', '4', '5']
    >>> R = []
    >>> for i in range(len(L)-1, -1, -1):
    ...     R.append(L[i])
    ... 
    >>> R
    ['5', '4', '3', '2', '1']
    

    【讨论】:

      【解决方案3】:
      lst1 = [1,2,3,4,5,6]
      reversed_list = []
      length = len(lst1)
      for r in range(0, length ):
          reversed_list.append( lst1[length - r - 1] )
      print reversed_list
      

      【讨论】:

        【解决方案4】:
        x="hey there"
        l=len(x)
        out=''
        while l:
            out=out+x[l-1]
            l-=1
        print out
        

        这就是你要找的。从刺痛的结尾开始向后工作并将其附加到输出变量

        【讨论】:

        • 让我想起了 - “这是斯汀。你以前见过,不是吗,咕噜?”:D
        猜你喜欢
        • 2013-09-12
        • 2015-04-22
        • 2018-08-03
        • 1970-01-01
        • 1970-01-01
        • 2010-09-16
        • 2010-10-30
        相关资源
        最近更新 更多