我試圖來填充空矩陣的對角線(名單列表)的蟒蛇用下面的代碼:如何使用python中的字符串填充矩陣的對角線?
source=['a','b','c']
rows=[]
for x in source:
rows.append('')
matrix=[]
for x in source:
matrix.append(rows)
print "before populating", matrix
for x in range (0, len(source)):
matrix[x][x]=source[x]
print "after populating", matrix
我意識到,這是不是爲了實現這個最有效的方式,但其實這似乎是我的問題中最少的。
我得到的輸出是這樣的:
[['a', 'b', 'c'], ['a', 'b', 'c'], ['a', 'b', 'c']]
但我希望的輸出是這樣的:
[['a', '', ''], ['', 'b', ''], ['', '', 'c']]
任何想法出了什麼問題?非常感謝!
所以這就是問題!謝謝!我很困惑! – Atticus29
我知道 - 這可能會讓Python感到困惑。與C++不同,在Python中分配對象會創建對現有對象的引用 - 而不是bitcopy。對於簡單的列表,切片是方法;對於更復雜的情況,請使用模塊**副本** – volcano