- 简介
- 将列表当做堆栈使用
- 将列表当作队列使用
- 列表推导式
- 嵌套列表解析
- del 语句
- 遍历技巧
本章节将结合前面介绍的列表、元组等知识来讲解。
将列表当做堆栈使用列表中有许多有用的方法,这也使得列表能够方便快捷地当做一个堆栈使用。堆栈的特点是先进后出,换句话说就是首先进栈的元素最后一个被释放。使用append方法能够将一个元素添加到栈顶。
具体案例如下所示:
dtcloud = [3, 4, 5] print(dtcloud) dtcloud.append(6) dtcloud.append(7) print(dtcloud) print(dtcloud.pop()) print(dtcloud) print(dtcloud.pop()) print(dtcloud) print(dtcloud.pop()) print(dtcloud) print(dtcloud.pop()) print(dtcloud) print(dtcloud.pop()) print(dtcloud)将列表当作队列使用
列表也能够当做队列使用,在队列最先加入的元素首先会被取出。但这样的效率不会很高。列表最后添加或者取出的元素速度很快,但是插入或者从头部取出的速度会相对较慢。
下面是代码实例:
from collections import deque
queue = deque(["dtcloud360", "zyf", "dtcloud"])
print(queue)
queue.append("亿智云")
queue.append("智慧企业")
print(queue.popleft())
print(queue.popleft())
print(queue)
列表推导式
创建列表的简单途径由列表推导式提供。一些操作通常由应用程序应用到序列的每个元素。获得的结果将会作为新列表的元素,或者是根据判定条件创建子序列。
每个列表推导式都会在for之后加上表达式,返回根据表达式而生成的一个列表。
如下所示:
dtcloud = [2, 4, 6] print(dtcloud) print([3*x for x in dtcloud])
也可以以这样的形式创建:
dtcloud = [2, 4, 6] print(dtcloud) print([[x, x**2] for x in dtcloud])嵌套列表解析
在之前的文章中提到列表可以嵌套,本次实例展现一个34的矩阵列表,然后将之转换成43的格式。
dtcloud = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
]
print(dtcloud)
print([[row[i] for row in dtcloud] for i in range(4)])
del 语句
使用del 语句能够根据索引值删除列表中的某个元素,与前文介绍过的pop方法不同,可以从del语句删除一个切割或者清空列表。例如:
a = [-1, 1, 66.25, 333, 333, 1234.5] del a[0] print(a)
当然也可以用del删除整个列表
del a遍历技巧
遍历字典的时候,关键字与对应的值可以使用item方法同时读出。
如下所示:
dtcloud = {'zyf': 'the company', 'dtcloud': 'the best'}
for c, p in dtcloud.items():
print(c, p)
遍历序列的时候,索引位置和对应值可以使用 enumerate() 函数同时得到:
for i, v in enumerate(['dtcloud', '亿智云', 'zyf']): print(i, v
需要同时遍历多个序列的时候,需要用到zip:
questions = ['name', 'quest', 'favorite color']
answers = ['dtcloud', 'the holy grail', 'blue']
for q, a in zip(questions, answers):
print('What is your {0}? It is {1}.'.format(q, a))



