2014-10-09 75 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)))