Python基础语法(四)之列表
目录
3.0 概述
1 | list.append(obj)在列表末尾添加新的对象 |
2 | list.count(obj)统计某个元素在列表中出现的次数 |
3 | list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 | list.index(obj)从列表中找出某个值第一个匹配项的索引位置 |
5 | list.insert(index, obj)将对象插入列表 |
6 | list.pop([index=-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | list.remove(obj)移除列表中某个值的第一个匹配项 |
8 | list.reverse()反向列表中元素 |
9 | list.sort( key=None, reverse=False)对原列表进行排序 |
10 | list.clear()清空列表 |
11 | list.copy()复制列表 |
3.1 切片
-
索引:
既有正数索引,也有负数索引,正数以0开始,负数-1为末尾的开始位置
对于切片来讲,遵循左闭右开原则,也就是说 最初索引可以取到,最后的索引则不取
-
例如如图所示:
-
实践:
sl Out[3]: ['D', 'r', 'e', 'a', 'm'] sl[0] Out[4]: 'D' sl[-1] Out[5]: 'm' sl[-5] Out[6]: 'D' sl[2:4]#输出第3到4个字符 Out[7]: ['e', 'a'] sl[2:] Out[8]: ['e', 'a', 'm'] sl[-5:] Out[9]: ['D', 'r', 'e', 'a', 'm']
3.2 列表删除 (常用 切片)
list = [1,2,3,4,5,6,7,8]
del list[1:3] #list[1:3] = []
#这两种删除方法是一样的,但是如果对单个对象(不用切片)就[]的话,就会
print(list)
[1, 4, 5, 6, 7, 8]
list = [1,2,3,4,5,6,7,8]#如此
list[3] = []
print(list)
[1, 2, [], 4, 5, 6, 7, 8, 9, 10, 11, 12]
list[:2]=[]
[3,4,5,6,7,8]
3.3 列表的切片查询
-
查询
s=[1,991,127,8,9,10,11,12]
s.index(12,0,8)
s.index(12,0,7)
索引遵循左闭右开,不包括 下标8,所以第二行查询会报错,如下:
list = [1,2,3,4,5,6,7,8]
print(list[-7:-1:1])
print(list[-1])
print(list[1])
print(list[-1:-9:-1])
print(list[-4:-8:-1])
print(list[4:0:-1])
print(list[4:-8:-1])
[2, 3, 4, 5, 6, 7]
8
2
[8, 7, 6, 5, 4, 3, 2, 1]
[5, 4, 3, 2]
[5, 4, 3, 2]
[5, 4, 3, 2]
-
列表生成式
#列表生成式 print([i*i for i in range(1,10) if 过滤条件]) # i*i 中的 i 表示列表元素的表达式 # for 后的 i 表示自定义变量 , range()表示可迭代对象 [1, 4, 9, 16, 25, 36, 49, 64, 81]
-
列表支持运算 + *,内部实现了运算符重载
sl Out[10]: ['D', 'r', 'e', 'a', 'm'] sl*2 Out[11]: ['D', 'r', 'e', 'a', 'm', 'D', 'r', 'e', 'a', 'm'] ['M','y']+sl Out[14]: ['M', 'y', 'D', 'r', 'e', 'a', 'm']
3.4 总结
另外,在以后 如果对Python进行进一步的学习,那么会遇到Numpy库,包括许多数据分析,机器学习都会用到该库,以及一种高级索引范式,在高级索引中支持更多的用法(“奇技淫巧”),等待你的进一步探索!
列表的操作比较简单,需要注意的就是 对于切片索引的掌控。这一点要着重理解与实践,可以说列表索引在以后的Python程序中是家常便饭般的存在,学好索引与切片,才能学好列表,为以后Python的学习奠定坚实的基础。