0

我正在尝试使用以下内容提取制表符分隔文件的前几个元素:

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) 它说它是一个整数。

有什么问题?

4

1 回答 1

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列表做什么。

于 2013-06-27T20:55:15.780 回答