2011-12-06 70 views
-1

在下面的代碼片段工作:類型錯誤,同時用Python列表

def func_5_2(datei, num): 
    import linecache 
    i = 0 
    number = num + 1 
    l = [] 
    while True: 
     l[i] = linecache.getline(datei, number) 
     if (l[i] == ''): 
      break 

是否有可能解決我得到這一行的問題?

list[i] = linecache.getline(datei, number) 

這是我得到的錯誤:

File "/home/oliverharms/workspace/GoSection/gosection.py", line 27, in func_5_2 
    list[i] = linecache.getline(datei, number) 
TypeError: 'type' object does not support item assignment 

感謝您的幫助!

+0

是什麼'list'? –

+0

你想做什麼?我發現你的代碼存在一些問題,但你期望的結果是什麼? – FakeRainBrigand

+0

請顯示'list'是如何初始化的。你確定它是一個Python列表嗎? – gecco

回答

1

你會得到這個例外,因爲對象list從不定義。在使用之前初始化list

例如像這樣:

list = [] 

你的代碼試圖將項目分配給內置序列類型list

這不是一個很好的做法,名字的變量,比如現有各類... 給變量其他名稱,如lines

>>> lines = [] 
>>> type(lines) 
<class 'list'> 
+0

好吧,還有一個變化,但我不明白爲什麼現在有一個IndexError:列表分配索引超出範圍。 – user1081715

+0

使用'list.append'而不是'list [i]'將項目添加到列表中。您不能設置不存在(尚)的表的索引。 – gecco

+0

如果我的帖子回答您的問題,將其標記爲解決方案以獎勵我。這是如何工作... – gecco