Python错误:列表索引必须是整数,而不是unicode

Sau*_*igh 5 python file-io tkinter

有我的问题:我试图通过这种方式从Tkinter的文本小部件中获取所有数字(从文件中获取文本):

text = self.text_field.get(1.0, 'end')    
s = re.findall("\d+", text)
Run Code Online (Sandbox Code Playgroud)

s返回如下内容:

[u'0', u'15', u'320', u'235', u'1', u'1', u'150', u'50', u'2', u'2', u'20']
Run Code Online (Sandbox Code Playgroud)

比我尝试向文本小部件添加标签:

for i in s: self.text_field.tag_add('%s', '5.0', '6.0') %s[i]
Run Code Online (Sandbox Code Playgroud)

它给出了一个错误:

list indices must be integers, not unicode
Run Code Online (Sandbox Code Playgroud)

thanx帮助我:)

650*_*502 12

在Python中你做的时候

for x in L:
    ...
Run Code Online (Sandbox Code Playgroud)

body循环内部x已经是list元素,而不是索引.

在您的情况下,所需的更正只是使用% i而不是% s[i].

如果在其他情况下你需要列表元素和索引号,那么常见的Python习语就是:

for index, element in enumerate(L):
    ...
Run Code Online (Sandbox Code Playgroud)