vec =[[1,2],[3,4]] print([[row[i] for row in vec] for i in range(len(vec[0]))])
时间: 2023-11-30 13:24:13 浏览: 74
node2vec-master-python3_node2vec_blanketk2r
这段代码是一个嵌套的列表推导式,用于将一个矩阵进行转置。
首先, `vec` 是一个二维列表,包含两个子列表 `[1,2]` 和 `[3,4]`,表示一个 2x2 的矩阵。
`range(len(vec[0]))` 返回的是一个迭代器,包含从 0 到 `vec[0]` 的长度减 1 的整数序列,即 `[0, 1]`。
`[row[i] for row in vec]` 是一个列表推导式,用于取出 `vec` 中每个子列表的第 `i` 个元素,组成一个新的列表。当 `i` 为 0 时,结果是 `[1, 3]`;当 `i` 为 1 时,结果是 `[2, 4]`。
最外层的列表推导式 `[[row[i] for row in vec] for i in range(len(vec[0]))]` 是一个嵌套的列表推导式,用于将上述结果按列排列,组成一个新的二维列表。结果为 `[[1, 3], [2, 4]]`,即原矩阵的转置。
阅读全文