2016-04-30 84 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