码迷,mamicode.com
首页 > 编程语言 > 详细

python的基本数据结构之列表

时间:2014-09-09 11:02:18      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   使用   strong   for   数据   div   

Python的列表就像数组一样。

定义一个空列表:

a=[]
a=list()

生成列表可以用列表推导式来生成一个列表:

ls1=[1,2,3,4]
ls2=[x*x for x in lst1]# ls2=[1,4,9,16]

 

列表的一些方法:

定义一个列表ls

ls.append(x)

在列表尾部追加一个元素,等价于ls[len(ls):]=[x]

ls.extend(L)

用给入的列表将列表接长,等价于ls[len(ls):]=L

ls.insert(i,x)

在给定的位置i上插入项x,ls.insert(len(ls),x)等价 与ls.append(x)

ls.remove(x)

移除列表中第一个为x的项,若无符合的项,产生一个错误。

ls.pop([i])

删除列表给定位置的项,并返回它。ls.pop()返回的则是最后一项。

ls.index(x)

返回列表中第一个值为x的索引值,若没有符合的项,产生一个错误

ls.count(x)

返回列表中x出现的次数

ls.sort()

就地完成列表排序

ls.reverse()

就地完成列表的逆置


 

将列表当成栈来使用,组合使用append()与pop()方法。

ls.append(x)相当于进栈,ls.pop()相当于出栈。

那么,如何将列表当成队列来使用呢?

看一个例子(来自《The python tutorial》)

>>> from collections import deque
 >>> queue = deque(["Eric", "John", "Michael"])
 >>> queue.append("Terry") # Terry 进入
 >>> queue.append("Graham") # Graham 进入
 >>> queue.popleft() # 第一个进入的现在离开
 ‘Eric‘
 >>> queue.popleft() # 第二个进入的现在离开
 ‘John‘
 >>> queue # 剩余的队列 ,它按照进入的顺序排列
 deque([‘Michael‘, ‘Terry‘, ‘Graham‘])

  网上看了下其他人用自己的方法来实现栈与队列的模拟:

class Stack(object) :
02     def __init__(self) :
03         self.stack = []
04     
05     def push(self, item) :
06         self.stack.append(item)
07     
08     def pop(self) :
09         if self.stack != [] :
10             return self.stack.pop(-1)
11         else :
12             return None
13     
14     def top(self) :
15         if self.stack != [] :
16             return self.stack[-1]
17         else :
18             return None
19     
20     def length(self) :
21         return len(self.stack)
22         
23     def isempty(self) :
24         return self.stack == []
25         
26 
27 class Queue(object) :
28     def __init__(self) :
29         self.queue = []
30     
31     def enqueue(self, item) :
32         self.queue.append(item)
33         
34     def dequeue(self) :
35         if self.queue != [] :
36             return self.queue.pop(0)
37         else :
38             return None
39             
40     def head(self) :
41         if self.queue != [] :
42             return self.queue[0]
43         else :
44             return None
45     
46     def tail(self) :
47         if self.queue != [] :
48             return self.queue[-1]
49         else :
50             return None
51     
52     def length(self) :
53         return len(self.queue)
54         
55     def isempty(self) :
56         return self.queue == []

原理是一样的,但是实现方法却会有很多个。

列表是可以嵌套的,这样就相当于多维数组了。

a=[

  [1,2],

  [2,3],

  [3,4]

 ]

到这吧。

python的基本数据结构之列表

标签:style   blog   color   io   使用   strong   for   数据   div   

原文地址:http://www.cnblogs.com/wuxiongliu/p/3961463.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!