列表(list)可以包含任何种类的对象:数字、字符串甚至其他列表。列表是可变对象,支持原处修改,可以通过指定的偏移值和分片、列表方法调用、删除语句。
列表的属性:
- 任意对象的有序集合:列表可以支持任意对象,包括其他列表及类型,同时所包含的每一项都包括了从左往右的位置顺序,列表属于序列。
- 通过偏移读取:可以通过列表对象的偏移进行索引,从而读取部分内容,执行分片和合并任务;
- 可变长度、异构及任意嵌套:列表不是不可变类型,支持长度变化(可变长度),可以包含任意类型对象(异构),列表能够包含其他复杂对象,支持嵌套;
- 属于可变序列:列表支持原处修改,可以响应所有针对字符串序列的操作,例如索引、分片和合并。
列表操作:
*支持+(合并)和(重复)操作:**
1
2
3
4
5
6
7
8
9
10
11>>> a=[1,2,3,4,5] >>> >>> len(a) 5 >>> >>> [1,2,3]+[4,5] [1, 2, 3, 4, 5] >>> >>> a*4 [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
列表迭代与解析:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15>>> 3 in [1,2,3] True >>> >>> 3 not in [1,2,3] False >>> >>> for x in a: ... print(x,end='n') ... 1 2 3 4 5
列表解析:通过对序列中的每一项应用一个表达式来构建一个新的列表的方式。
1
2
3
4
5
6
7
8
9
10
11
12>>> resu = [d ** d for d in a] >>> >>> resu [1, 4, 27, 256, 3125] >>> >>> a = list('Yert') >>> >>> re = [g * 4 for g in a] >>> >>> re ['YYYY', 'eeee', 'rrrr', 'tttt']
索引、分片和矩阵:
由于列表属于序列,索引、分片操作与字符串操作基本相同,然而对列表进行索引的结果是指定的偏移处的对象(不管什么类型),而对列表进行分片时返回一个新的列表。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15>>> L = list('Yert') >>> >>> L ['Y', 'e', 'r', 't'] >>> >>> L[2] 'r' >>> L[2:3] ['r'] >>> >>> L[-1] 't' >>> L[1:] ['e', 'r', 't']
列表的嵌套:
1
2
3
4
5
6
7
8
9
10
11
12>>> matrix = [[1,2,3],[4,5,6],[7,8,9]] >>> >>> matrix [[1, 2, 3], [4, 5, 6], [7, 8, 9]] >>> >>> matrix[2] [7, 8, 9] >>> matrix[2][1] 8 >>> matrix[1][0] 4
原处修改列表:
列表是属于可变类型的,支持原处修改列表对象的操作。修改时不会像字符串生成新的对象。
索引与分片的赋值:
可以将列表赋值给一个特定项(偏移)或整个片段(分片)来改变内容。
1
2
3
4
5
6
7
8
9
10
11
12>>> L = ['Python','Yert','Alan','Ye'] >>> >>> L[1] = 'Sam' >>> >>> L ['Python', 'Sam', 'Alan', 'Ye'] >>> >>> L[0:2] = ['Java','James'] >>> >>> L ['Java', 'James', 'Alan', 'Ye']
列表常用方法调用:
1
2
3
4
5
6
7
8
9>>> L.append('Lank') #插入对象 >>> >>> L ['Java', 'James', 'Alan', 'Ye', 'Lank'] >>> >>> L.sort() #对列表对象进行排序 >>> L ['Alan', 'James', 'Java', 'Lank', 'Ye']
Append方法:
简单的将一个单项(对象引用)添加至列表末端。与合并不相同的是,append允许传入单一对象而不是列表。L.append(X) 与L+[X]的结果类似,前者会原地修改L,后者会生成新的列表。
Sort方法:
原地对列表进行排序,使用Python标准的比较检验作为默认值,而且以递增的顺序进行排序。可以通过传入关键字来修改排序行为——指定按名称传递的函数调用中特殊的”name=value”语法,给定配置选项,在排序中,key参数给出一个单个参数的函数,返回在排序中使用的值,reverse参数允许排序按照降序而不是升序进行。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17>>> L=['Agc','aBe','adC'] >>> >>> L ['Agc', 'aBe', 'adC'] >>> >>> L.sort(key=str.lower) >>> >>> L ['aBe', 'adC', 'Agc'] >>> >>> L=['Agc','aBe','adC'] >>> >>> L.sort(key=str.lower,reverse=True) >>> >>> L ['Agc', 'adC', 'aBe']
Sort方法可以作为内置方法使用,排序任何对象(列表之外的对象),并且针对结果返回一个新的列表(不是原处修改)。
1
2
3
4
5
6
7
8
9
10
11
12
13>>> L = ['abc','ABD','aBe'] >>> >>> L ['abc', 'ABD', 'aBe'] >>> >>> sorted(L,key=str.lower,reverse=True) ['aBe', 'ABD', 'abc'] >>> >>> L = ['abc','ABD','aBe'] >>> >>> sorted([x.lower() for x in L],reverse=True) ['abe', 'abd', 'abc']
Extend方法可以插入对象,pop方法弹出最后一位对象,reverse函数逆序列表。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21>>> L = [1,2,3] >>> >>> L.extend([4,5,6,7]) >>> >>> L [1, 2, 3, 4, 5, 6, 7] >>> >>> L.pop() 7 >>> >>> L [1, 2, 3, 4, 5, 6] >>> >>> L.reverse() >>> >>> L [6, 5, 4, 3, 2, 1] >>> >>> list(reversed(L)) [1, 2, 3, 4, 5, 6]
Pop方法接受某一个即将删除并返回的元素的偏移(默认值为最后一个元素),这一偏移是可选的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18>>> L = ['a','Alan','d','Yert'] >>> >>> >>> help(L.pop) #通过help方法可以查看对象引用方法的说明文档 Help on built-in function pop: pop(index=-1, /) method of builtins.list instance Remove and return item at index (default last). Raises IndexError if list is empty or index is out of range. >>> >>> L.pop(2) 'd' >>> >>> L ['a', 'Alan', 'Yert']
Remove方法移除某元素:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15>>> L.remove('a') >>> >>> L ['Alan', 'd', 'Yert'] >>> >>> L = ['a','Alan','d','Yert','a','a','a'] >>> >>> L ['a', 'Alan', 'd', 'Yert', 'a', 'a', 'a'] >>> >>> L.remove('a') >>> >>> L ['Alan', 'd', 'Yert', 'a', 'a', 'a']
Insert方法在某处偏移插入元素:
1
2
3
4
5
6
7
8
9
10>>> L = ['Yert','dd','rm','Sam'] >>> >>> L ['Yert', 'dd', 'rm', 'Sam'] >>> >>> L.insert(2,'Jinja') >>> >>> L ['Yert', 'dd', 'Jinja', 'rm', 'Sam']
使用del方法删除列表的某项和分片:
1
2
3
4
5
6
7
8
9
10
11
12
13>>> L ['Yert', 'dd', 'Jinja', 'rm', 'Sam'] >>> >>> del L[1] >>> >>> L ['Yert', 'Jinja', 'rm', 'Sam'] >>> >>> del L[1:] >>> >>> L ['Yert']
由于分片赋值时删除外加插入操作,可以通过将空列表赋值给分片来删除列表片段(L[i:j]=[])。Python会删除左侧的分片,然后什么也不插入。
将空列表赋值给一个索引,只会在指定的位置存储空列表的引用,而不是删除:
1
2
3
4
5
6
7>>> L = ['Yert','dd','rm','Sam'] >>> >>> L[1:] = [] >>> >>> L ['Yert']
转载于:https://blog.51cto.com/11433338/2394354
最后
以上就是个性老鼠最近收集整理的关于Python学习笔记(六)——列表的全部内容,更多相关Python学习笔记(六)——列表内容请搜索靠谱客的其他文章。
发表评论 取消回复