列表作为栈,最后一个放入,第一个取出(后进先出),使用l1.appen()与l1.pop()
列表作为队列,先进先出,在开头插入或者弹出效率非常低,由于列表是链表在内存中排列,插入或者弹出会导致内存的挪动。
若实现一个队列,可以使用collections.deque,它被设计为快速的从两端添加或者弹出
from collections import deque
list1 = deque([1,2,3,4,5,6])
list1.append(7)
list1.append(8)
list1.popleft()
print(list1)
>>deque([2, 3, 4, 5, 6, 7, 8])
将matrix三行四列转换为三列四行
for循环实现
matrix = [[1,2,3,4],[‘a‘,‘b‘,‘c‘,‘d‘],[11,22,33,44]]
new_list = []
for index in range(4):
new_list.append([j[index] for j in matrix])
print(new_list)
[[1, ‘a‘, 11], [2, ‘b‘, 22], [3, ‘c‘, 33], [4, ‘d‘, 44]]
使用嵌套列表式实现
print([[row[index]for row in matrix]for index in range(4)])
[[1, ‘a‘, 11], [2, ‘b‘, 22], [3, ‘c‘, 33], [4, ‘d‘, 44]]
使用zip函数
print(list(zip(*matrix)))
[(1, ‘a‘, 11), (2, ‘b‘, 22), (3, ‘c‘, 33), (4, ‘d‘, 44)]
原文:https://www.cnblogs.com/zoer/p/13282418.html