【流畅的Python】笔记三

切片:

   切片和区间操作理,不包含区间范围的最后一个元素。

   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'], ['_', '_', '_']]



================出差============暂停========大爷的========

原文地址:https://www.cnblogs.com/tendercool/p/14245406.html