python将列表转换为矩阵并获取值

用户名

我是python的新手。我在嵌套列表中有16个1和0的列表。

list([name_of_matrix],[1234567812345678], [another_name],[1234....])

[12345678....]列表中的每个数字项都表示一个4x4矩阵,如下所示:

1234
5678
1234
5678

我的目标是访问数字,[row, col].例如[2,3]将是第2行,col3,即7。我应该如何转换列表以实现此目的?提前谢谢了。

gmds

首先,您应该将嵌套分解list为,dict其中键是代表名称的字符串,而值是整数:

nested_list = [['first'], [1234567812345678], ['second'], [1234432109877890]]
raw_dict = {k[0]: v[0] for k, v in zip(nested_list[::2], nested_list[1::2])}

现在,我们希望将每个16位整数转换成可以更好地表示矩阵的值。numpy是一种方法,但现在让我们继续使用基本的Python。

注意,如果我们将每个整数转换为字符串,则每个4个字符的块将代表矩阵的一行。因此:

def to_matrix(i):
    string = str(i)
    return [[int(element) for element in string[i:i + 4]] for i in range(0, 16, 4)]

matrix_dict = {k: to_matrix(v) for k, v in raw_dict.items()}

现在,我们dictlists代表矩阵的嵌套值

print(matrix_dict)

输出:

{'first': [[1, 2, 3, 4], [5, 6, 7, 8], [1, 2, 3, 4], [5, 6, 7, 8]], 'second': [[1, 2, 3, 4], [4, 3, 2, 1], [0, 9, 8, 7], [7, 8, 9, 0]]}

我们可以通过链式索引访问任意元素:

print(matrix_dict['first'][3][2])

输出:

7

编辑:如果我们不想在列表之间进行区分,那么我们可以这样做:

matrices = [to_matrix(element[0]) for element in nested_list if isinstance(element[0], int)]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将列表转换为python中的矩阵

来自分类Dev

将矩阵转换为列表

来自分类Dev

Python-将边缘列表转换为邻接矩阵

来自分类Dev

将矩阵(CSV)转换为python中的3列列表

来自分类Dev

将矩阵转换为列表列表

来自分类Dev

将获取值转换为数据帧

来自分类Dev

将字典列表转换为numpy矩阵?

来自分类Dev

R将矩阵转换为列表

来自分类Dev

将列表转换为矩阵或数组?

来自分类Dev

将稀疏矩阵索引列表转换为R中的矩阵

来自分类Dev

R:将矩阵转换为子矩阵列表

来自分类Dev

将像素矩阵转换为图像python

来自分类Dev

将python ndarray转换为Matlab矩阵

来自分类Dev

Haar 将矩阵从 Matlab 转换为 Python

来自分类Dev

将表列表转换为矩阵列表

来自分类Dev

如何使用python将邻接矩阵转换为邻接列表?

来自分类Dev

如何将Python OpenCV图像矩阵转换为4x4块列表

来自分类Dev

Python - 如何将矩阵(由熊猫制成)转换为列表?

来自分类Dev

将python稀疏矩阵dict转换为scipy稀疏矩阵

来自分类Dev

将 Tcl 列表转换为 Python 列表

来自分类Dev

R在将列表转换为矩阵时处理NULL值

来自分类Dev

将长度不均匀的列表向量转换为矩阵

来自分类Dev

将1.2GB的边缘列表转换为稀疏矩阵

来自分类Dev

如何将矩阵(或列表)转换为data.frame

来自分类Dev

将非对称向量列表转换为矩阵

来自分类Dev

R:将表转换为邻接矩阵或边列表

来自分类Dev

将列表转换为相同长度的特殊矩阵

来自分类Dev

将矩阵转换为R中的特定列表

来自分类Dev

将列表中的字符串转换为数字矩阵