现在的位置: 主页 > 联系方式 > 文章列表

Python学习之数据结构

作者:上海瑞梁浩行投资咨询有限公司 来源:www.60899055.com 发布时间:2017-09-05 12:07:06
 

Python学习之数据结构

Python学习之数据结构:列表数据类型还有更多的方法。这里是列表对象方法的清单:list.append(x)添加一个元素到列表的末尾。相当于a[len(a):] = [x]。

list.extend(L)

将给定列表L中的所有元素附加到原列表a的末尾。相当于a[len(a):] = L。

list.insert(i, x)

在给定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,所以 a.insert(0, x) 在列表的最前面插入,a.insert(len(a), x) 相当于 a.append(x)。

list.remove(x)

删除列表中第一个值为 x 的元素。如果没有这样的元素将会报错。

list.pop([i])

删除列表中给定位置的元素并返回它。如果未指定索引,a.pop() 删除并返回列表中的最后一个元素。(i 两边的方括号表示这个参数是可选的,而不是要你输入方括号。在Python库中会经常看到这种表示方法)。

list.clear()

删除列表中所有元素。相当于del a[:]。

list.index(x)

返回列表中第一个值为x 的元素的索引。如果没有这样的元素将会报错。

list.count(x)

返回列表中 x 出现的次数。

list.sort(cmp=None, key=None, reverse=False)

原地排序列表中的元素。

list.reverse()

反转列表中的元素。

list.copy()

返回列表的一个浅拷贝。等同于a[:]。

>>> 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]

像insert, remove 或者 sort 之类的方法只修改列表而没有返回值打印出– 它们其实返回了默认值None。[1]这是 Python 中所有可变数据结构的设计原则

将列表作为堆栈使用

列表方法使得将列表当作堆栈非常容易,最先进入的元素最后一个取出(后进先出)。使用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] 将列表当做队列使用

也可以将列表当作队列使用,此时最先进入的元素第一个取出(先进先出);
但是列表用作此目的效率不高。在列表的末尾添加和弹出元素非常快,但是在列表的开头插入或弹出元素却很慢 (因为所有的其他元素必须向后移一位)。
如果要实现一个队列,可以使用collections.deque它设计的目的就是在两端都能够快速添加和弹出元素。例如:

>>> 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']) 列表解析

列表解析提供了一个生成列表的简洁方法。应用程序通常会从一个序列的每个元素的操作结果生成新的列表,或者生成满足特定条件的元素的子序列。
例如:假如我们想要创建一个列表squares:

>>> squares = [] >>> for x in range(10): ... squares.append(x**2) ... >>> squares [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

注意这个for循环中的被创建(或被重写)的名为x 的变量在循环完毕后依然存在。使用如下方法,我们以计算squares的值:

squares = list(map(lambda x: x**2, range(10)))

map 函数的详细介绍如下:
Python中map()函数浅析
或者,等价地:

squares = [x**2 for x in range(10)]

列表解析由括号括起来,括号里面包含一个表达式,表达式后面跟着一个for语句,后面还可以接零个或更多的for 或if 语句。结果是一个新的列表,由表达式依据其后面的for 和if 语句上下文计算而来的结果构成。例如,下面的listcomp组合两个列表中不相等的元素:

>>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y] [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:鄂州SEO http://ezhou.raoyu.net

  • 上一篇:Python之道(三)之字典
  • 下一篇:最后一页
  •