当前位置:  开发笔记 > 编程语言 > 正文

使用列表上的operator*创建独立对象

如何解决《使用列表上的operator*创建独立对象》经验,为你挑选了1个好方法。

我正在尝试初始化一个二维(3x3)列表而不键入所有元素,因为它们都是相同的.

但是,似乎只有这个矩阵的第一行真的被创建为一个新对象,而后续行只是对第一行的引用.

我怎么能创建所有行都是独立的对象?

这是一个例子来说明这一点:

# Create a bi-dimentional list
a=[[''] * 3] * 3
print a
>>>[['', '', ''], ['', '', ''], ['', '', '']]

# change a single element, on first line
# notice that it will change also the elements at other lines
a[0][1] = 'x'
print a
[['', 'x', ''], ['', 'x', ''], ['', 'x', '']]

Delgan.. 5

你可以使用range():

a = [[''] * 3 for _ in range(3)]

使用*list(更常见的是使用对象)实际上只是创建引用,您必须创建新列表.



1> Delgan..:

你可以使用range():

a = [[''] * 3 for _ in range(3)]

使用*list(更常见的是使用对象)实际上只是创建引用,您必须创建新列表.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有