2014-05-06 23 views

回答

3

當你調用writer.writerow(value.insert(0, key)),不工作,因爲value.insert(0, key)回報None

>>> value = [6, 7, 8] 
>>> new = value.insert(0, 5) 
>>> new 
>>> print new 
None 
>>> value 
[5, 6, 7, 8] 
>>> 

相反,人們更行添加到您的for loop:

for key,value in sorted(players.items()): 
     value.insert(0, key) 
     writer.writerow(value) 

基本上,你在做什麼叫writer.writerow(None);上面的代碼將解決這個問題。

希望這會有所幫助!

2

因爲list.insert「在原地」工作。它返回None,因爲它沒有給出值,它只是在列表本身上運行。

想象一下:

def multiply_by_three(number): 
    global number 
    three = 3 # magic numbers are bad, right? :) 
    number = three * number 

不退還數,它只是改變了它任何地方居住。實際上返回None,因爲如果函數沒有return語句,那麼函數會隱式地執行該操作。

所以基本上你正在做的:

for key,value in sorted(players.items()): 
    writer.writerow(None) 

如果Array你的意思list,那麼你可以做,而不是:

for key,value in sorted(players.items()): 
    writer.writerow([key]+value) 
相關問題