Python基础:列表篇

列表在Python中是很常用的,和C++中的数组很像(我是这么觉得)。本篇博客就不讨论一些列表最基本的东西,例如:怎么创建,和列表的一些常见方法。我将简单说一下列表的其他用法,比如:列表推导式,列表作为栈,队列使用等

列表作为栈

首先栈是一种数据结构,其最大的特点就是最后一个放入的,会被最先取出,说简单点就是后进先出。这就像玩具枪的弹夹一样,你最后装进弹夹的子弹总是会最先被打出来。所以对栈操作就有两个基本操作了——进栈和出栈
列表作为栈使用非常容易,进栈就是往栈顶添加元素,这时调用append() 方法。出栈要从顶部取出一个元素,调用pop() 方法。

lis1 = [1, 2, 3, 4]
lis1.append(5)  #进栈 在lis1的最后加入5
lis1.append(6)
lis1.pop()  #   出栈
以上代码输出:
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6]
[1, 2, 3, 4, 5]

列表作为队列

队列也是一种数据结构,它和栈的刚好相反,它是先进先出。但是要在列表的开头插入和弹出元素很慢(每操作一次就意味着后面的元素要移动一位)。所以要用列表来作为队列的话需要借助collections.deque,它对象会返回一个新的双向队列对象:

from collections import deque

a = ['Amy', 'Marry', 'Ales']
queue = deque(a)  # 返回一个双向的队列新对象
queue.append('Terry')   # 从queue的右端插入
print(queue)
queue.appendleft('Granhet')   # 从queue的左端插入
print(queue)
queue.pop()   # 从右边弹出
print(queue)
queue.popleft()  # 从左边弹出
print(queue)

列表推导式

列表推导式提供了一个更简单的创建列表的方法
列表推导式的结构是由一对方括号所包含,包含的内容有: 一个表达式,后面跟一个for语句,然后是零个或多个for或if子句,其结果会返回一个新列表

squares = [x**2, for x in range(10)] # 返回10以内数的平方

 from math import pi
[str(round(pi, i)) for i in range(1, 6)]  # 圆周率的精确度
['3.1', '3.14', '3.142', '3.1416', '3.14159']

列表推导式的的初始表达式还可以是任何表达式,也就是嵌套的列表表达式

hun = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12]
       ]
b = [[j[i] for j in hun] for i in range(4)]。  #交换矩阵hun的行和列
print(b)
对于推导式,除了列表支持这种操作以外, 字典和集合也支持推导式,方法也近乎相同.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值