matrix-dict
A 100x100 dictionary-based matrix with 10,000 accessible indexes for Python.
Features
- Fixed 100x100 size - Exactly 10,000 cells
- Dictionary-like access - Use
(row, col)tuple keys - Default values - Initialize all cells with a default
- Bulk operations - Set/get entire rows, columns, or submatrices
- Iteration - Iterate over all 10,000 positions efficiently
- Slicing - Extract rectangular submatrices
- List conversion - Convert to/from nested lists
- Type hints - Full typing support
Installation
pip install matrix-dict
Or from source:
git clone https://github.com/amphibiar/matrix-dict
cd matrix-dict
pip install -e .
Quick Start
from matrix_dict import create_matrix
# Create a 100x100 matrix with default value 0
matrix = create_matrix(default_value=0)
# Set individual cells
matrix[(0, 0)] = 100
matrix[(50, 50)] = 2500
# Access cells
value = matrix[(0, 0)] # 100
# Fill with a loop
for row in range(100):
for col in range(100):
matrix[(row, col)] = row * 100 + col
# Or iterate directly
for (row, col), _ in matrix:
matrix[(row, col)] = row * 100 + col
# Get entire row/column
row_5 = matrix.get_row(5) # [500, 501, ..., 599]
col_3 = matrix.get_col(3) # [3, 103, 203, ..., 9903]
# Set entire row/column
matrix.set_row(0, [i * 2 for i in range(100)])
matrix.set_col(5, [i * 3 for i in range(100)])
# Submatrix operations
sub = matrix.get_submatrix(0, 10, 0, 10) # 10x10 top-left
matrix.set_submatrix(20, 20, [[1, 2], [3, 4]])
# Check if explicitly set
if (50, 50) in matrix:
print("Cell was set")
# Convert to/from list
data = matrix.to_list() # 100x100 list of lists
new_matrix = MatrixDict.from_list(data)
API Reference
create_matrix(default_value=None) -> MatrixDict
Factory function to create a new matrix.
MatrixDict(default_value=None)
Main class. Initialize with optional default value for all 10,000 cells.
Item Access
matrix[(row, col)] = value- Set cellvalue = matrix[(row, col)]- Get cell (returns default if not set)(row, col) in matrix- Check if explicitly set
Bulk Operations
matrix.fill(value)- Fill all 10,000 cellsmatrix.clear()- Clear all explicitly set valuesmatrix.set_row(row, values)- Set row from list of 100matrix.set_col(col, values)- Set column from list of 100matrix.get_row(row) -> List- Get row as listmatrix.get_col(col) -> List- Get column as list
Submatrix
matrix.get_submatrix(r_start, r_end, c_start, c_end) -> List[List]matrix.set_submatrix(row_start, col_start, values)
Iteration
for (row, col), value in matrix:- All 10,000 positionsmatrix.iterate_row(row)- Iterate (col, value) in rowmatrix.iterate_col(col)- Iterate (row, value) in columnmatrix.items()- Explicitly set (key, value) pairsmatrix.keys()- Explicitly set keysmatrix.values()- Explicitly set values
Conversion
matrix.to_list()- Convert to 100x100 list of listsMatrixDict.from_list(data, default_value)- Create from list
Requirements
- Python 3.8+
License
MIT
Metadata
Release files for matrix-dict 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| matrix_dict-1.0.0.tar.gz | 4.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| matrix_dict-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.6 kB
Release files / matrix_dict-1.0.0.tar.gz
| Download URL | matrix_dict-1.0.0.tar.gz |
|---|---|
| Size | 4.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b7df812b3004d0f44644b714194816c55fc0f74c20c1d5771b20cbef663ffd34
|
|
BLAKE2b-256 checksum How to use checksums |
f2745024e03d1dc1b151003553c720d9437bfb550e4b04fe0aba20b43e74e7bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / matrix_dict-1.0.0-py3-none-any.whl
| Download URL | matrix_dict-1.0.0-py3-none-any.whl |
|---|---|
| Size | 2.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
be4643ae517eecc9e5a141a162c759ea5ba9597620b47454a2654a2678a382d8
|
|
BLAKE2b-256 checksum How to use checksums |
da3080d263e8e4f210b1d8dd6bb1931463bb5816a2765525587609c5329e3f9b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|