我正在尝试使用以下内容提取制表符分隔文件的前几个元素:
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)
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我收到此错误:
TypeError: list indices must be integers, not str
logout
Run Code Online (Sandbox Code Playgroud)
即使我运行类型(计数器),它说它是一个整数.
有什么问题?
您正在试图指数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])
Run Code Online (Sandbox Code Playgroud)
虽然words
在这种情况下不清楚你想要对列表做什么.
归档时间: |
|
查看次数: |
476 次 |
最近记录: |