三、python沉淀之路--列表(list)
一、列表提供的一些方法
1、append():在原值最后追加
1 li = [11,22,33,44,55,] 2 li.append(99) 3 print(li) 4 li.append('中国') 5 print(li)
1 [11, 22, 33, 44, 55, 99] 2 [11, 22, 33, 44, 55, 99, '中国']
2、clear():清空列表
1 li = [11,22,33,44,55,] 2 li.clear() 3 print(li)
3、copy:拷贝,而且是浅拷贝,有返回值
1 li = [11,22,33,44,55,] 2 li1=li.copy() 3 print(li1)
4、count:计算列表中某元素出现的次数,有返回值
1 li = [11,22,33,22,44,22,55,] 2 n = li.count(22) 3 print(n)
返回值:3
5、extend:扩张原列表,参数必须是 可迭代对象
1 li = [11,22,33,22,44,22,55,] 2 li.extend(['北京’,‘长安街']) 3 print(li) 4 5 for i in ['北京','长安街']: #extend实际上相当于进行了for循环和append的组合应用 6 li.append(i) 7 print(li) 8 9 li.extend("北京") #字符串也是可迭代对象,经过extend后把每个元素分开加进去 10 print(li) 11 li.extend("abc") 12 print(li) 13 14 li.append(['北京','长安街']) #对比后,append会把整体加到列表最后,不会分开加进去 15 print(li)
1 [11, 22, 33, 22, 44, 22, 55, '北京’,‘长安街'] 2 [11, 22, 33, 22, 44, 22, 55, '北京’,‘长安街', '北京', '长安街'] 3 [11, 22, 33, 22, 44, 22, 55, '北京’,‘长安街', '北京', '长安街', '北', '京'] 4 [11, 22, 33, 22, 44, 22, 55, '北京’,‘长安街', '北京', '长安街', '北', '京', 'a', 'b', 'c'] 5 [11, 22, 33, 22, 44, 22, 55, '北京’,‘长安街', '北京', '长安街', '北', '京', 'a', 'b', 'c', ['北京', '长安街']]
6、index:获取对应值的索引位置(左边优先)
1 li = [11,22,33,22,44,22,55,] 2 n = li.index(22) 3 print(n)
返回值:1
7、insert:在指定位置插入元素
1 li = [11,22,33,22,44,22,55,] 2 li.insert(0,77) 3 print(li)
1 [77, 11, 22, 33, 22, 44, 22, 55]
8、pop:删除某个值,并且可以获取删除的值,删除分两种:一种默认删除最后一个;二是指定索引位置删除某元素
1 li = [11,22,33,22,44,22,55,] 2 s = li.pop() 3 print(li) 4 print(s) 5 s1 = li.pop(0) 6 print(li) 7 print(s1)
1 [11, 22, 33, 22, 44, 22] 2 55 3 [22, 33, 22, 44, 22] 4 11
9、remove:删除指定的元素
1 li = [11,22,33,22,44,22,55,] 2 li.remove(33) 3 print(li)
1 [11, 22, 22, 44, 22, 55]
总结:目前位置已经学了物种删除方法: pop remove del li[2] del li[1:4] clear
10、reverse:将当前列表进行反转
1 li = [11,22,33,22,44,22,55,] 2 li.reverse() 3 print(li)
1 [55, 22, 44, 22, 33, 22, 11]
11、sort:排序,默认从小到大排序,括号里设为真时,从大到小排序
1 li = [11,55,22,33,22,44,22,] 2 li.sort() 3 print(li) 4 li.sort(reverse=True) 5 print(li)
1 [11, 22, 22, 22, 33, 44, 55] 2 [55, 44, 33, 22, 22, 22, 11]
同类方法,后面还要学 :cmp key sorted
二、列表的其他常用方法
1、列表里面可以嵌套任何形式。里面的元素可以是 数字、列表、字符串、布尔值等等
2、可以索引取值
print(li[3])
3、可以切片,获取片段,片段还是列表
print(li[2:5])
print(li[3:-1])
4、可以进行for 循环,因为是可迭代的,也可以whlie循环,
5、列表生成后,可以修给里面的元素; 字符串一旦生成后,里面的元素不可修改
6、可以索引修改、删除里面的元素
1 li = [11,55,22,33,22,44,22,] 2 #索引修改值 3 li[0]=9 4 print(li) 5 #索引删除值 6 del li[1] 7 print(li)
1 [9, 55, 22, 33, 22, 44, 22] 2 [9, 22, 33, 22, 44, 22]
7、切片获取片段,切片删除片段
1 li2 = [11,55,22,33,22,44,22,] 2 #切片 3 ss = li2[2:-1] 4 print(ss) 5 #删除一段 6 del li2[2:-1] 7 print(li2)
1 [22, 33, 22, 44] 2 [11, 55, 22]
8、in 操作、 深度索引操作
1 li = [22,44,5,7,"china",[99,"nice"],"good",True] 2 v1 = 22 in li 3 print(v1) 4 v2 = "nice" in li 5 print(v2) 6 7 v = li[5][1] 8 print(v)
1 True 2 False 3 nice
9、转换
str 转 int
1 s = "12345" 2 n = int(s) 3 print(n)
int 转str
1 n = 1223454 2 s = str(n)
字符串转列表
1 s = "abcdefg" 2 li = list(s) 3 print(li)
1 ['a', 'b', 'c', 'd', 'e', 'f', 'g']
列表转字符串:分两种:一是列表里只有字符串形式的元素,这时既可用for循环,又可用join法;二是列表里除了有字符串,还有其他类型,只能用for循环
1 li = [22,4,4,66,"hello","world"] 2 s = "" 3 for i in li: 4 s =s + str(i) 5 print(s) 6 7 li2 = ["hello","world"] 8 s = "".join(li2) 9 print(s)
1 224466helloworld 2 helloworld
10、补充
字符串创建以后不可以被修改
1 s = "abcdefg" 2 s1=s.replace("a","0") #这里的改动,不是把原来的改了,而是在内存里另外开辟了一块空间,将新的字符串存起来了,通过下面两个print输出结果可以证明 3 print(s) 4 print(s1)
1 abcdefg 2 0bcdefg
字符串不可以通过索引来修改
#########i列表有序,元素可以被修改###############
类与对象的区别