我有一個字典,其中每個值都是一個數組。當元素是一個鍵時如何將一個元素添加到數組中
我想要做的只是以writer.writerow(myrow)的形式將數組寫入csv。
爲什麼沒有了以下工作:
for key,value in sorted(players.items()):
writer.writerow(value.insert(0,key))
我有一個字典,其中每個值都是一個數組。當元素是一個鍵時如何將一個元素添加到數組中
我想要做的只是以writer.writerow(myrow)的形式將數組寫入csv。
爲什麼沒有了以下工作:
for key,value in sorted(players.items()):
writer.writerow(value.insert(0,key))
當你調用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)
;上面的代碼將解決這個問題。
希望這會有所幫助!
因爲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)