3. list 方法

列表类似于C++中的vector,C语言中的数组,用于存储顺序结构

创建列表(list

  a=['1','2']       []括起来,表示一个list,中间的各个元素可以是任何类型,用逗号分隔。

 

列表结构

计算机生成了可选文字: 一len
一2
一1
0
1
第·个元素
倒数第二个元素
最后·个元素
第·个元素
第二个元素
len一1}最后一个元素

 

list函数  拆分字符串成列表

>>> list('chongshi')
['c', 'h', 'o', 'n', 'g', 's', 'h', 'i']

 

修改列表:元素赋值

>>> x =[1,2,3,4]
>>> x[2]=18
>>> x
[1, 2, 18, 4]

 

删除元素

>>> names = ['zhangsan','lisi','wangwu','sunliu']
>>> del names[2]
>>> names
['zhangsan', 'lisi', 'sunliu']

 

分片赋值:

>>> name = list('huzi')
>>> name
['h', 'u', 'z', 'i']
>>> name[2:]=list('dazhi')
>>> name
['h', 'u', 'd', 'a', 'z', 'h', 'i']

name的内容为“huzi” ,从第3个字符(2)开始替换,用“da”替换“zi”并被扩容“zhi”,所以新的name的内容为“hudazhi”。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

列表方法

 对象.方法 (参数)

1append

 append方法用于在列表末尾追加新的对象:

 >>> abc = [1,2,3]
 >>> abc.append(4)
 >>> abc
 [1, 2, 3, 4]

 

2count

count方法统计某个元素在列表中出现的次数:

>>> ['to','be','or','not','to','be',].count('to')
2
>>> x = [[1,2],1,1,[2,1,[1,2]]]
>>> x.count(1)   
2
>>> x.count([1,2])
1

 

3、extend

extend方法可以在列表的末尾一次性追加另一个序列中的多个值。用新列表扩展原有列表:

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]

 

4、index

index 方法用于从列表中找出某个值第一个匹配项的。

>>> knights = ['We','are','the','kninghts','who','say','ni']
>>> knights.index('who')
4
>>> knights[4]
'who'

 

5、insert

insert 方法用于将对象插入到列表中:

>>> numbers = [1,2,3,5,6,7]
>>> numbers.insert(3,'four')
      #插在前面
>>> numbers
[1, 2, 3, 'four', 5, 6, 7]

 

6、pop

pop 方法会移除列表中一个元素(默认是最后一个),并且返回该元素的值:

>>> x = [1,2,3]
>>> x.pop()
3
>>> x
[1, 2]
>>> x.pop(0)
1
>>> x
[2]

 

模拟压栈、出栈

>>> a=[]

>>> a.append(0)       #压栈

>>> a.append(1)

>>> a.append(2)

>>> a

[0, 1, 2]

>>> a.pop()                 #出栈

2

>>> a.pop()

1

>>> a.pop()

0

模拟队列

>>> a.insert(0,0)   #入队

>>> a.insert(0,1)

>>> a.insert(0,2)

>>> a

[2, 1, 0]

>>> a.pop()            #出队

0

>>> a.pop()

1

>>> a.pop()

2

>>> a

[]

或者:

>>> a.append(0)        #入队

>>> a.append(1)

>>> a.append(2)

>>> a

[0, 1, 2]

>>> a.pop(0)               #出队

0

>>> a.pop(0)

1

>>> a.pop(0)

2

>>> a

[]

 

7、remove

remove 方法用于移除列表中某个值的第一个匹配项:  #没有返回值,和pop相反

>>> x = ['to','be','or','not','to','be']
>>> x.remove('be')
>>> x
['to', 'or', 'not', 'to', 'be']

 

8、reverse

revers方法将列表中的元素反向存放

>>> x = [1,2,3]
>>> x.reverse()
>>> x
[3, 2, 1]

也可以这样实现:

>>> list(reversed(x))

 [3, 2, 1]

 

9、sort

sort方法用于在原位置对列表进行排序。在“原位置排序”改变原来的列表,从而让其中的元素能按一定的顺序排列(没有返回值)

>>> x = [4,6,2,1,7,9]
>>> x.sort()
>>> x
[1, 2, 4, 6, 7, 9]

 

>>> x = [4,6,2,1,7,9]
>>> y = x
                    #副本排序
>>> y.sort()

>>> y

[1, 2, 4, 6, 7, 9]

 

#另外一种副本排序方法

>>> x = [4,6,2,1,7,9]
>>> y = sorted(x)                 

>>> y

[1, 2, 4, 6, 7, 9]

>>> x

[4, 6, 2, 1, 7, 9]

sorted可用于任何序列

>>> sorted('python')

['h', 'n', 'o', 'p', 't', 'y']

 

10、高级排序

list去重:   {}.fromkeys(list).keys() 
list字符排序: list.sort(key=int)   list.sort(key=len)   #指定排序键类型   
                       list.sort(reverse=True)                         #反向排序




posted @ 2015-06-14 09:12  51runsky  阅读(194)  评论(0编辑  收藏  举报