1)簡(jiǎn)化迭代模型-->填充數(shù)字
引入itertools.product()函數(shù)能夠把之前需要兩層以上迭代才能完成的工作用一層迭代就完成
>>> print list(product([1,2,3],[3,4]))
[(1, 3), (1, 4), (2, 3), (2, 4), (3, 3), (3, 4)]
>>>
>>> print list(product([1,2,3],repeat = 2))
[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]
2)拷貝,copy函數(shù)-->打印數(shù)獨(dú)列表
在介紹我們的打印函數(shù)之前,先介紹一下我們即將要完成的函數(shù)中要用到的 copy.deepcopy() 函數(shù)。
>>> a = list(range(5))
>>> print a
[0, 1, 2, 3, 4]
>>> b = a
>>> a[3] = 7
>>>
>>> print b
[0, 1, 2, 7, 4]
Python 中的對(duì)象之間賦值時(shí)是按引用傳遞的,如果需要拷貝對(duì)象,需要使用標(biāo)準(zhǔn)庫(kù)中的copy模塊。
>>> a = list(range(5))
>>> print a
[0, 1, 2, 3, 4]
>>> import copy
>>> b = copy.deepcopy(a)
>>> a[3] = 7
>>> print b
[0, 1, 2, 3, 4]
這次的賦值不再單單傳遞了一個(gè) 變量a 的引用,而是實(shí)實(shí)在在的為 變量b 分配了內(nèi)存空間。
3)方便單位調(diào)用-->打印數(shù)獨(dú)列表
這里用到了print.format()函數(shù),舉例說明:
>>> print '{} and {}'.format('spam', 'eggs')
spam and eggs
但是在代碼中我們運(yùn)用了更加高級(jí)的技巧
print("||? {}? |? {}? |? {}? ||? {}? |? {}? |? {}? ||? {}? |? {}? |? {}? ||"
.format(*(cell or ' ' for cell in line)))
每一個(gè) "{}" 都對(duì)應(yīng)了一個(gè) cell 變量。而format()函數(shù)中的 * 號(hào),則是將所有的 cell 的不同值放入一個(gè)元組 tuple 之中,方便format函數(shù)調(diào)用。