python一些基本知识点之列表(二)

来源:互联网 发布:隐藏域名ip cdn 编辑:程序博客网 时间:2024/06/05 07:58

Python的列表对象是这个语言提供的最通用的序列。

列表是一个任意类型的对象的位置的相关的集合,它没有固定的大小,其大小是可以改变的,通过对偏移量进行赋值以及其他各种列表的方法进行调用,确实能够修改列表的大小。

例如:有三个元素的列表,我们能够对列表进行索引、切片等操作,就像对字符串的操作一样。

>>> L = [123,'spam',1.23]>>> len(L)3

>>> L.append('NI')>>> L[123, 'spam', 1.23, 'NI']>>> L.pop<built-in method pop of list object at 0x00B0DEB8>>>> L.pop(2)1.23>>> L[123, 'spam', 'NI']>>> 

>>> M = ['bb','aa','cc']>>> M.sort()//排序>>> M['aa', 'bb', 'cc']>>> M.reverse() //翻转>>> M['cc', 'bb', 'aa']>>> 
Python嵌套:支持任意类型的嵌套。

>>> M = [[1,2,3],     [4,5,6],     [7,8,9]]>>> M[[1, 2, 3], [4, 5, 6], [7, 8, 9]]>>> M[1][4, 5, 6]>>> M[1][2]6>>> col2 = [row[1] for row in M]#这里的row是自定义的,可以为任意的字母>>> col2[2, 5, 8]>>> A = [row[1] + 1 for row in M]>>> A[3, 6, 9]>>> [row[1] for row in M if row[1]%2 == 0]#过滤奇数[2, 8]>>> 
这个地方弄的很迷惑??为啥都是输出的列?怎么输出行呢?
>>> [col[1] for col in M][2, 5, 8]>>> [col[2] for col in M][3, 6, 9]>>> [c[1] for c in M][2, 5, 8]

>>> diag = [M[i][i] for i in [0,1,2]]#输出0行0列,1行1列,2行2列>>> diag[1, 5, 9]>>> double = [a*2 for a in 'spam']>>> double['ss', 'pp', 'aa', 'mm']>>> G = (sum(row) for row in M)>>> G<generator object <genexpr> at 0x011F6FA8>>>> next(G)6>>> next(G)15>>> list(map(sum,M))[6, 15, 24]>>> {sum(row) for row in M}#集合set([24, 6, 15])>>> {i:sum(M[i]) for i in range(3)}#字典{0: 6, 1: 15, 2: 24}>>> 
列表、集合、字典

>>> [ord(x) for x in 'spaam'][115, 112, 97, 97, 109]>>> {ord(x) for x in 'spaam'}set([112, 97, 115, 109])>>> {x:ord(x) for x in 'spaam'}{'a': 97, 'p': 112, 's': 115, 'm': 109}>>> 





0 0