在 Python 中使用二维数组

Python014

在 Python 中使用二维数组,第1张

如果你需要使用二维数组,在 Python 中,除了 numpy 这个包之外,最简单的方式就是使用 list 了。你可能认为可以这样构建:

但是请你再仔细想一想,这样做真的没有问题吗?

不要忘记了, Python 一切都是对象 这个问题,对象肯定存在引用的问题,尤其是可变对象。我们试着来改变其中一个元素

很不幸,不是我们想象的那样,它改变了多个元素。

来看一看 [ [0] * m ] * n 这个表达式,它首先创建 a = [ [0] * 4] ,然后构造 array = [a] * 3 ,这里 array 里面是 a 的 3 个引用。

正确的构造,应该使用 列表推导式 ,而且非常 Pythonic

也能输入吧,用eval处理一下。

# -*- coding: utf8 -*-

arrayString = input('输入一个二维数组:')

array = eval(arrayString)

print(array)

输入一个二维数组:[[1,2],[3,4]]

[[1, 2], [3, 4]]