2012-10-16 275 views
0

我正在爲高中課程創建一個程序,我們的老師對於允許進入我們的程序的內容非常具體。我們使用python 2.x,他只允許if語句,while循環,函數,布爾值和列表。我正在處理一個打印字符串反轉的項目,然後再次打印沒有數字的逆轉,但我無法弄清楚。請幫助。我有什麼到目前爲止,這是..從字符串中刪除數字-Python

def reverse_str(string): 
    revstring =('') 
     length=len(string) 
     i = length - 1 
     while i>=0: 
      revstring = revstring + string[i] 
      i = i - 1 
     return revstring 
    def strip_digits(string): 
     l = [0,1,2,3,4,5,6,7,8,9] 
     del (l) rev_string 


    string = raw_input("Enter a string->") 
    new_str = rev_str(string) 
    print new_str 

我無法弄清楚如何使用「刪除」功能不好,我要如何反轉string..thanks刪除任何項目列表中的

回答

1

一般情況下,你有這樣的任務兩種選擇:

  1. 迭代通過在清單中的項目,刪除那些你要保留。

  2. 遍歷列表中的項目,複製做的想要保留的新列表。返回新列表。

現在,雖然我通常喜歡選擇(2),不會與您的具體問題有關del幫助。從列表中刪除a在指數x的項目,下面的語法將做到這一點:

del a[x] 

這將所有的元素過去指數x左移關閉刪除元素留下的空白。如果你迭代列表中的所有項目,你將不得不考慮這個轉變。

+0

我想刪除的那些我不想繼續再後來在#confused列表 – user1695993

+0

打印出來....對不起我提到我是一個新手:d使它更好嗎? – user1695993

+1

成爲新手不是問題。但即使作爲新手,你也應該能夠確定'del(l)rev_string'是Python中的語法錯誤,並且查找使用'del'的正確語法。 –

0

您可以迭代字符串,然後再次複製它,但不能複製數字......如果您還想出pythonic方法來執行所有您不允許的操作,這將會很有趣。兩種方法都很好理解。

1

Python中的str類型是不可變的(不能在適當位置修改)並且不支持del項刪除功能。

將字符串的字符映射到列表並刪除所需的元素並重建字符串。

OR

循環訪問字符串元素,同時建立一個新的,忽略的數字。

del正確的用法是:

>>> a = [1, 2, 3] 
>>> del a[1] 
>>> a 
[1, 3]