切片:
切片和区间操作理,不包含区间范围的最后一个元素。
S[a:b:c] 形式,对S在a和b之间以c为间隔取值。
即为seq[start:stop:step]
>>> S = 'bicycle'
>>> S[::3]
'bye'
>>> S[::-1]
'elcycib'
>>> S[::-2]
'eccb'
对序列的操作,+ 即拼接, * 即复制再拼接。
>>> weired_board = [['_']*3]*3
>>> weired_board
[['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
>>> weired_board[1][2] = '0'
>>> weired_board
[['_', '_', '0'], ['_', '_', '0'], ['_', '_', '0']]
上述示例,错误。因:得到的列表里包含的 3 个元素其实是 3 个引用,而且这 3 个引用指向的都是同一个列表。尽量使用列表推导。
>>> board = [['_']*3 for i in range(3)]
>>> board
[['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
>>> board[1][2] = '0'
>>> board
[['_', '_', '_'], ['_', '_', '0'], ['_', '_', '_']]
================出差============暂停========大爷的========