Python中使用list来模拟常见的数据结构
2013-07-20 16:12
555 查看
>>> #使用list来模拟堆栈stack >>> a = []; >>> a [] >>> a.append(0) >>> a.append(1) >>> a.append(2) >>> a [0, 1, 2] >>> a.pop() 2 >>> a.pop() 1 >>> a [0] >>> #使用list来模拟队列queue >>> a=[] >>> a [] >>> a.insert(0,1) >>> a.insert(0,2) >>> a.insert(0,3) >>> a [3, 2, 1] >>> a.pop() 1 >>> a.pop() 2 >>> a.pop() 3 >>> a [] >>>
>>> #或者可以使用如下方式进行模拟queue >>> a [] >>> a.append(1) >>> a.append(2) >>> a.append(3) >>> a.append(4) >>> a.pop(0) 1 >>> a.pop(0) 2 >>> a.pop(0) 3 >>> a.pop(0) 4 >>> a [] >>>
>>> #使用list来模拟tree >>> leaf1 = [0,1] >>> leaf2 = [2,3] >>> leaf3 = [4,5] >>> leaf4 = [6.7] >>> leaf4 = [6,7] >>> branch1 = [leaf1,leaf2] >>> branch2 = [leaf3,leaf4] >>> root = [branch1,branch2] >>> root [[[0, 1], [2, 3]], [[4, 5], [6, 7]]] >>>
>>> #list comprehension >>> #语法: [<expr1> for k in L if <expr2>] >>> #语义: returnList = [] >>> # for k in L: >>> # if <expr2>: >>> # returnList.append(<expr1>) >>> # return returnList >>> #返回一个list,list的每个元素有每一个expr1组成,if语句用于过滤,可有可无 >>> a = ["123" , "456" , "abc" , "Abc" , "AAA"] >>> [k.center(9) for k in a] [' 123 ', ' 456 ', ' abc ', ' Abc ', ' AAA '] >>> #得到a中的仅有字母组成的字符串,并把他变成大写的 >>> [k.upper() for k in a if k.isalpha()] ['ABC', 'ABC', 'AAA'] >>> #得到a中仅有大写字母组成的字符串,并把他变成小写的 >>> [k.lower() for k in a if k.isupper()] ['aaa'] >>> #得到a中仅有数字构成的字符串,并把他变成整数类型 >>> [int(k) for k in a if k.isdigit()] [123, 456] >>> #尽管这个用法很简单,但是却是十分有用的,程序变得简洁,可读性强。很多时候,我们使用循环语句,仅仅做很简单的事情,但是循环语句本身是很不好读的,因为循环语句不符合自然语言中的习惯,例如:上面的例子中,有一个表示“把list中的每个字符串中的字符变成大写字符串”。但是如果表示使用循环语句就是:“创建一个空的list,对于list中的每一个元素,把这个字符串变成大写的,添加到新建的list中”。 >>> #例如:把list中的所有元素加1 >>> #[k+1 for k in list] >>> #提取出list中所有整数变量 >>> #[k for k in list if type(k) == types.IntType] >>> #把list中的所有整数元素增加一 >>> #[k+1 for k in list if type(k) == types.IntType] >>>
!!!!学习自王纯业版的《Python学习笔记》
相关文章推荐
- Java基础课程学习总结,使用LinkedList简单模拟队列数据结构和堆栈数据结构的实现
- java小练习-使用LinkedList模拟一个堆栈或队列数据结构
- 使用LinkedList来模拟堆栈或队列数据结构
- [Python数据结构] 使用 Circular List实现Queue
- 使用LinkedList模拟一个堆栈或者队列数据结构
- 使用LinkedList模拟一个堆栈或队列数据结构
- Java使用LinkedList模拟一个堆栈或者队列数据结构。
- 黑马程序员使用LinkedList模拟一个堆栈或者队列数据结构。
- Python中list的append方法添加,和使用下标取得。之中的元素还可以是其他的数据结构
- [Python数据结构] 使用List实现Stack
- java 使用LinkedList模拟一个堆栈或者队列数据结构
- 使用LinkedList模拟一个堆栈或者队列数据结构
- 【Java学习】使用LinkedList 模拟一个堆栈或者队列数据结构
- Java LinkedList特有方法程序小解 && 使用LinkedList 模拟一个堆栈或者队列数据结构。
- python学习7:数据结构list的使用
- java 使用LinkedList模拟一个堆栈或者队列数据结构
- 零基础学python-19.11 使用迭代工具模拟map
- Java中常见数据结构List之ArrayList
- python数据结构之列表和元组(list/tuple)
- python数据结构与算法——小猫钓鱼(使用队列)