Powiedzmy mam następujący pusty dwuwymiarowej tablicy w Pythonie:wartość Przypisanie do pojedynczej komórki w tablicy dwuwymiarowej Pythona
q = [[None]*5]*4
chcę przypisać wartość 5
do pierwszego rzędu w pierwszym kolumna q
. Instynktownie, I wykonaj następujące czynności:
q[0][0] = 5
Jednak ta produkuje:
[[5, None, None, None, None],
[5, None, None, None, None],
[5, None, None, None, None],
[5, None, None, None, None]]
Pierwszym elementem każdym tablicy jest inicjowany 5
, gdzie myślałem, że tylko pierwszy element pierwszego array otrzyma aktualizację. Mam dwa pytania:
- Dlaczego Python inicjuje pierwszą wartość każdej tablicy, a nie tylko pierwszą?
- Czy istnieje lepszy sposób na wykonanie tego, co próbuję wykonać?
+1 dla słownika jako matrycy. –
Dam ci +1, jeśli podzielisz się wynikami badań, które doprowadziły do tej wartości 80%. –
To zasada Pareto. http://en.wikipedia.org/wiki/Pareto_principle. 80% czasu potrzebujesz tylko 20% struktur danych. –