python-链表

python 链表操作

list=[1, 2, 3, 455, '1qq']
sList = ['a', 'b', 'c']

1. list.append('aaa')  #把'aaa'元素添加到链表的结尾,相当于 list[len(list):] = 'aaa'
list=[1, 2, 3, 455, '1qq', 'aaa']

2. list.extend(sList)   #把链表sList元素添加到list链表,相当于 list[len(list):] = sList
list=[1, 2, 3, 455, '1qq', 'a', 'b', 'c']

3. list.insert(i,x)   # 在i位置内插入x元素

4. list.remove(x) #删除第一个为x的元素

5. list.pop([i]) # 从链表的指定位置删除元素,并将其返回,当i为空即list.pop()删除最后一个元素

6. list.index(x) #返回链表中第一个元素为x的索引,如果没有匹配的元素则报错

7. list.count(x) #返回x在链表中出现的次数

8. list.sort() #对链表的元素进行适当地排序

9. list.reverse() #对链表的元素进行倒序

del 语句,del list[0] 表示删除链表第一个元素,del list 表示删除整个链表

-------------------------------------------------------------------------------------------------------
把链表当做堆栈使用:

list = ['aaa', 'bbb', 'ccc', 'ddd']

进栈:
list.append('eee')

出栈:
list.pop()

-------------------------------------------------------------------------------------------------------
把链表当做队列使用:

list = ['aaa', 'bbb', 'ccc', 'ddd']

进队列:
list.append('eee')

出队列:
list.pop(0)

-------------------------------------------------------------------------------------------------------
链表内置函数:filter()、map()、reduce() (filter() map() 返回的是一个链表,reduce返回的是一个单值)

filter()

filter(function, sequence) 返回一个序列sequence ,包括给定序列中所有元素调用function(item) 返回值为true的元素
eg:

def f(x):
       return (x % 2 != 0 and x % 3 != 0)

list = filter(f,range(2, 25)) 返回值为[5,7,11,13,17,21,23]

map()

map(function, sequence) 为序列里面每个元素依次调用function(item),并将返回值组成链表返回
eg:

def cube(x):
       return x*x*x

list = map(cube, range(1, 5)) 返回值为[1,8,27,64]

reduce()

reduce(function, sequence) 返回一个单值,首先以序列的前两个元素调用函数,得到返回值在和第三个元素调用,依次执行下去
eg:

def add(x, y):
     return x+y

print reduce(add, range(1, 10))  返回值为

--------------------------------------------------------------------------------------------------------
链表推导式:
每一个链表推导式包括在一个for语句之后的表达式,零或多个for或if语句。返回值是由for或if子句之后的表达式得到的元素组成的链表。如果想要得到一个元组,必须要加上括号。

eg:
list=[' apple ', '    pear   ', '   banana']

list1 = [ fruit.strip() for fruit in list ]  返回 list1 =['apple', 'pear', 'banana']

vec = [ 2 , 4 , 6 ]
ved = [ 4 , 5 , 6 ]

vec1 = [ 3*x for x in vec ]  返回值为 [ 6, 12, 18 ]

vec2 = [ 4*x for x in vec if x > 3 ]  返回值为 [ 16, 24 ]

vec3 = [ 3*x for x in vec if x < 2 ] 返回值为 [ ]

vec4 = [ [x,3*x] for x in vec ]

vec5 = [ ( x,4*x ) for x in vec ]

vec6 = [ x*y for x in vec for y in ved ]

-------------------------------------------------------------------------------------
enumerate()遍历链表

list = ['aaa', 'bbb', 'ccc', 'ddd']

for i,v in enumerate(list):

     print i,v








你可能感兴趣的:(python-链表)