2014-10-09 105 views
0

一個wxListBox我有這個那個逆轉字符串中的字符靜態方法:遍歷在Python

@staticmethod 
def reverse(s): 
    txt = '' 
    for i in range(len(s)-1, -1, -1): 
     txt += s[i] 
    return txt 

我有一個wxListBox充滿了不同的字符串。我需要通過wxListBox遍歷和應用我的反向方法每個字符串:

for name in [self.listBox1.GetString(i) for i in range(self.listBox1.GetCount())]: 
     self.reverse(str(name)) 

上面的代碼是不是我的倒車字符串,但我相信我的反向方法效果。如何將我的反向方法應用於wxListBox中的每個字符串?

+0

'反向([self.listBox1.GetString(i)對於我的範圍(self.listBox1.GetCount()))' – falsetru 2014-10-09 02:14:42

+0

我得到一個名稱錯誤:全局名稱'reverse'未定義? – 2014-10-09 02:19:59

+0

用'YourClassName.reverse'替換'reverse'。 – falsetru 2014-10-09 02:20:25

回答

0

你的代碼完美地工作:-)它確實顛倒了字符串。但就是這樣。如果 想要在列表框中看到反轉的字符串,則必須更新列表框。 這一切都圍繞着字符串是不可變的事實,並且在你的反面你實際上返回一個新的字符串(反轉),但是沒有命令將字符串 放回到列表框中。所以,這樣的事情應該工作:

for i in range(self.listBox1.GetCount()): 
    self.listBox.SetString(i, self.reverse(self.listBox1.GetString(i)))