2016-04-30 114 views
0

我最近发表了一篇关于这个的文章,但没有详细说明,我也不知道评论如何工作网站,所以我想我会创建另一个线程与适当的细节(如果这没关系,对不起,如果不是)如何在Python中反转字符串列表而不反转()或[:: - 1]

简而言之,我正在编写代码,提示并从用户读取一个字符串(例如: 12345)。这个字符串可以是无限长的(例如:123456789123456789等)。在输入这个字符串之后,我的代码从该字符串获取每个元素并将其放入一个列表中(例如,12345变为['1','2','3','4','5']) 。

我需要帮助的是在不使用reverse()或[:: - 1]的情况下颠倒这个字符串列表,并使它与可能无限长的字符串列表一起工作(例如['1' ,'2','3','4','5']变为['5','4','3','2','1'])。

我知道这是非常基本的,但我花了一段时间试图想出如何做到这一点,出于某种原因,我的缓慢的大脑无法掌握如何去做。对我来说学习的最好方法是看看它是否已经完成,并解释它是如何工作的(或者我可以看看代码并自己找出'如何'部分)。我会非常感激这方面的帮助,谢谢你提前!

+2

什么是你不想使用'reversed'或'[:: - 1]的原因'?你想达到什么目的? 'list(颠倒了('12345'))'完全完成了这项工作...... –

+0

@ColonelBeauvel,可能试图做一个提到如此的学校任务。 – MohitC

回答

-1
x="hey there" 
l=len(x) 
out='' 
while l: 
    out=out+x[l-1] 
    l-=1 
print out 

这就是你要找的。开始于上向后工作刺痛的末端,并追加到了无功

+0

提醒我 - *“这是斯汀,你以前见过,不是吗,咕噜?”*:D –

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) 
1

除了使用reversed()L[::-1],你可以使用list.reverse()扭转名单的元素-place

>>> 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'] 
0
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