list. copy ( )
返回list的一个影子拷贝(浅拷贝),相当于 a[:]
用一个例子来说明list的大多数用法
>>> a = [66.25, 333, 333, 1, 1234.5] >>> print(a.count(333), a.count(66.25), a.count('x')) 2 1 0 >>> a.insert(2, -1) >>> a.append(333) >>> a [66.25, 333, -1, 333, 1, 1234.5, 333] >>> a.index(333) 1 >>> a.remove(333) >>> a [66.25, -1, 333, 1, 1234.5, 333] >>> a.reverse() >>> a [333, 1234.5, 1, 333, -1, 66.25] >>> a.sort() >>> a [-1, 1, 66.25, 333, 333, 1234.5] >>> a.pop() 1234.5 >>> a [-1, 1, 66.25, 333, 333] list的用法
你可能会注意到像insert、remove或sort这样的方法只修改了List而没有返回值——其实他们都返回了空值None。这是Python中对所有可变数据结构的一个设计原则
List的方法让它很容易像Stack那样被使用,最后一个加入的元素第一个被删除("后进先出"原则 )。使用append() 来添加一个元素至栈顶,使用不给定下标的pop() 将一个元素从栈顶移除,示例:
>>> stack = [3, 4, 5] >>> stack.append(6) >>> stack.append(7) >>> stack [3, 4, 5, 6, 7] >>> stack.pop() 7 >>> stack [3, 4, 5, 6] >>> stack.pop() 6 >>> stack.pop() 5 >>> stack [3, 4]
同样的,List的方法也使它很容易像queue那样被使用,第一个加入的元素第一个被删除("先进先出"原则)。但是,List在这种用法下并不高效。尽管从List末尾添加或是删除元素是很快的,但从List起始位置插入或弹出元素却是慢的(因为需要所有其他的元素依次移动一个位置)
因此,推荐使用 collections.deque 来实现 queue,它被设计成从两端都可以快速地添加和移除元素。
>>> from collections import deque >>> queue = deque(["Eric", "John", "Michael"]) >>> queue.append("Terry") # Terry arrives >>> queue.append("Graham") # Graham arrives >>> queue.popleft() # The first to arrive now leaves 'Eric' >>> queue.popleft() # The second to arrive now leaves 'John' >>> queue # Remaining queue in order of arrival deque(['Michael', 'Terry', 'Graham'])