在Python中,如果l1是一个列表,如果我们分配l2 = l1
并通过赋值将l1直接更改为其他列表,那么l2也将更改为我们分配给l1的列表。
通过使用类似的东西可以避免这种情况。
l2 = list(l1)
或
l2 = l1[:]
或
import copy
l2 = copy.copy(l1)
或
import copy
l2 = copy.deepcopy(l1)
对于我的问题,
我在table
的某种二维结构化列表中有一个4×4的数字网格,这是这样的:
-------------
| 0| 1| 2| 3|
|--|--|--|--|
| 4| 5| 6| 7|
|--|--|--|--|
| 8| 9|10|11|
|--|--|--|--|
|12|13|14|15|
-------------
table[n/4][n%4] = n
,n
的所有值,0≤n
≤15。
我正在尝试为Tic Tac Toe的扩展版本解决Spline 4×4尺寸的电路板, 一场比赛,其中两名球员中的一名必须(然后应该)在14次移动后通过使用两名球员, 不同于Tic Tac Toe n×n尺寸的板材的绘制版本,对于任何n≥3的值。
为解决这个问题,要写入Python,
让win = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15], [0, 4, 8, 12], [1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [0, 5, 10, 15], [3, 6, 9, 12]]
基本上对应于四个水平元素,四个垂直元素和两个对角元素。
我有一个清单
line = [[]] * 16
如果i
包含{{1 }}
在下面这段代码中考虑写入Python,
i
正在简化内容,
现在就是,
为什么win[item]
为line[i]
的结构化列表的所有索引添加win[item]
的结构化列表,索引值为0,索引≤15,
但不仅仅是i
的结构化列表的索引for item in win:
for i in line:
line[i].append(item)
?
为什么会出现这两个问题?
为了解决这个问题,有哪些替代方法和方法可用于写入Python?
通过仅使用相同的方式,我只使用数据库而不是字典,因为前者能够将数据存储在硬盘中并继续 从上次保存状态开始计算任何时间段,然后我试图避免使用足够慢的操作 比如Multiplication,Division,Modulo和Power,以及利用足够快的操作 像加法,减法,逻辑和逻辑或逻辑不,左移和右移。
提前谢谢。