数独求解

  • will 

看《离散数学及其应用》的时候,里面提到了数独问题,心血来潮就花了一天时间撸了份求解脚本,详见https://github.com/lazydao/training/blob/master/sudoku.py

诚如README所云,只为练手,写的过程中也的确发现自己手生得紧。算法(姑且称之)本身并不复杂,倒是在这过程中踩了两个Python的小坑,顺手在此记录下。

1、list 的复制

一个list中的元素也是list时,复制它不能只使用list.copy(),而应该使用copy.deepcopy(),参考:https://docs.python.org/3/library/copy.html?highlight=copy#copy.deepcopy

p = [list(range(1, 10)) for i in range(9)]
# wrong
p_cp = p.copy()
# right
import copy
p_cp = copy.deepcopy(p)

2、实例变量和类变量

参考:https://docs.python.org/3/tutorial/classes.html?highlight=class#class-and-instance-variables

实例变量用于每个实例特有的数据,类变量用于类的所有实例共享的属性和方法。

标签: