python - 如何为具有动态大小的二维数组的元素赋值?
问题描述
我想在不使用任何库的情况下为图创建邻接矩阵。问题是图表的大小不是静态的,它会随着时间的推移而增加。所以我不能使用如下命令:
adj = [ [None for i in range(5)] for j in range(4) ]
例如,将 4 分配给元素 (1,1):
adj[1][1]=4
我创建了一个名为 adj 的空列表:
adj = []
现在每次向图中添加一个节点时,我都会向 adj 添加一个列表:
adj.append([])
我如何为矩阵的特定元素赋值,就像我q[1][1]=4
在大小固定时所做的那样?
解决方案
您可以从任何默认大小开始,然后使用extend
将元素添加到子列表,或添加新的子列表。
adj = [ [0 for i in range(2)] for j in range(2) ]
print(adj)
#[[0, 0], [0, 0]]
adj[0].extend([1, 1])
#[[0, 0, 1, 1], [0, 0]]
print(adj)
adj.extend([[0, 0, 0, 0, 0]])
print(adj)
#[[0, 0, 1, 1], [0, 0], [0, 0, 0, 0, 0]]
根据要求调整列表大小后,您可以分配元素。
adj[0][0] = 2
adj[1][1] = 3
adj[2][2] = 4
print(adj)
#[[2, 0, 1, 1], [0, 3], [0, 0, 4, 0, 0]]
推荐阅读
- shader - 在值求和期间没有分支的单纯形噪声
- flutter - 抛出 ImageCodecException 解析图像编解码器
- html - 加载 WMS 层时 Mapbox GL JS HTML webmap 出错
- typescript - 为什么我的函数仅在仅使用三元运算符而不是常规 if/else 语句时才起作用?
- postgresql - PostgresQL to_timestamp 错误:源字符串中的“MM”无效
- php - php循环显示当前年份数据,如果没有找到而不是跳过
- reactjs - 上下文中的值未重新呈现
- python - Preventing repetition in nested if
- python - Socket 显然不能在 Raspberrypi 4 上运行?
- android - Android - 数据源与存储库