我正在尝试使用以下内容提取制表符分隔文件的前几个元素:
words = []
name_elements = []
counter = 0
for line in f:
words = line.split()
for element in words:
counter = counter + 1
if words[element].isupper():
name_elements = words[0:counter-1]
print type(counter)
当我运行此代码时,我收到此错误:
TypeError: list indices must be integers, not str
logout
即使我运行type(counter),它也表示它是一个整数。
问题是什么?
答案 0 :(得分:5)
您正尝试使用words
为element
编制索引。 element
是一个字符串; 已经你想要的项目。
for
循环依次为words
提供每个元素,并将其分配给element
变量。 element
不是words
列表的整数索引。
请注意,你的计数器将超出界限;如果您想要将words
列表与元素一起索引,请使用enumerate()
函数。您还要使用name_elements
中的切片替换words
列表;也许你想扩展名单:
for line in f:
words = line.split()
for counter, element in enumerate(words):
if element.isupper():
name_elements.extend(words[:counter-1])
虽然在这种情况下不清楚你想要对words
列表做些什么。