Hãy nói rằng tôi có trống mảng sau hai chiều bằng Python:Gán giá trị cho một tế bào riêng lẻ trong một mảng hai chiều python
q = [[None]*5]*4
Tôi muốn gán một giá trị của 5
đến hàng đầu tiên trong lần đầu tiên cột của q
. Theo bản năng, tôi làm như sau:
q[0][0] = 5
Tuy nhiên, điều này tạo ra:
[[5, None, None, None, None],
[5, None, None, None, None],
[5, None, None, None, None],
[5, None, None, None, None]]
Yếu tố đầu tiên của mỗi mảng được khởi tạo 5
, nơi tôi nghĩ chỉ là yếu tố đầu tiên của đầu tiên mảng sẽ nhận được bản cập nhật. Tôi có hai câu hỏi:
- Tại sao Python khởi tạo giá trị đầu tiên của mỗi mảng chứ không phải chỉ là giá trị đầu tiên?
- Có cách nào tốt hơn để thực hiện những gì tôi đang cố gắng làm không?
+1 cho từ điển như ma trận. –
Tôi sẽ cung cấp cho bạn +1 nếu bạn chia sẻ nghiên cứu dẫn đến giá trị đó là 80%. –
Đó là Nguyên tắc Pareto. http://en.wikipedia.org/wiki/Pareto_principle. 80% thời gian, bạn chỉ cần 20% cấu trúc dữ liệu. –