python学习笔记(二)— 列表(list)
列表也叫数组,列表定义,使用[]即可;列表里面可以再套列表,一个里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维,定义格式如下:
list1 = [1,2,3,4] #一个普通的数组 list2 = ['marry','lily',[50,'monkey']] #二维数组 list3 = ['name','sex',['lily',124,['aaaa','bbb']]] #三维数组
一、访问列表中的值
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
list1 = ['Google', 'baidu', 1997, 2000] list2 = [1, 2, 3, 4, 5, 6, 7] list3 = [1,2,[1,2,[1,2,3,4,5],4],4] print(list1[0]) print(list2[1:5]) print(list3[2][2][3])
返回:
Google [2, 3, 4, 5] 4
切片,切片也就是另一种方式获取列表的值,它可以获取多个元素,可以理解为,从第几个元素开始,到第几个元素结束,获取他们之间的值,格式是name:[1:10](获取第2到第10个元素),切片是不包含后面那个元素的值的,记住顾头不顾尾;前面的下标如果是0的话,可以省略不写,这样写,name[:6],切片后面还有可以写一个参数,叫做步长,也就是隔多少个元素,取一次,默认可以不写,也就是隔一个取一次,如下:
names = [1,2,3,4,5,6,7] print(names[1:4]) #取下标1至下标4之间值,包括1,不包括4 print(names[1:-1]) #取下标1至-1的值,不包括-1 print(names[0:3]) #取下标0至3的值,不包括3 print(names[:3])#取下标0至3的值,不包括3,和上面的效果一样,0可以省略不写 print(names[2:])#取从第二个下标开始的后面所有元素 #下面是加上步长的 nums = [1,2,3,4,5,6,7,8,9,10] print(nums[::2])#这个代表取所有的元素,然后每隔2个元素取一个 print(nums[1:8:3])#代表取第二个元素开始,到第八个结束,隔3个取一次
返回:
[2, 3, 4] [2, 3, 4, 5, 6] [1, 2, 3] [1, 2, 3] [3, 4, 5, 6, 7] [1, 3, 5, 7, 9] [2, 5, 8]
二、列表操作
1、增
msg = '你好' name = ['小明','小白','小黑'] name.append(msg)#从最后面开始插入 name.insert(1,msg) #从指定位置插入,这个1代表下标 print(name)
返回:
['小明', '你好', '小白', '小黑', '你好']
2、改
name = ['小明','小白','小黑'] name[1] = '小红' #修改指定位置的值 print(name)
返回:
['小明', '小红', '小黑']
3、删
name= ['a','b','c','d'] name.remove('a')#删除指定的值 del name[2]#删除指定位置的值 name.pop()#不传入下标的话,删除最后一个值,传入下标删除指定位置的值 #name.clear()#清空列表 print(name)
返回:
['b']
三、列表的内置方法
实例一:
name = ['a','b','c','a','d'] print(name.index('b'))#取索引 print(name.count('a'))#取cc出现的次数
返回:
1 2
实例二:
list1 = [1,2,2,2,34,4] list2 = [3,355,6,6] list1.extend(list2)#在列表末尾追加另一个序列中的值(用新列表扩展原来的列表) list2.reverse()#反转数组 print(list1) print(list2)
返回:
[1, 2, 2, 2, 34, 4, 3, 355, 6, 6]
[6,6,355,3]
实例三:
stus = [1,23,44,1,13,3,3,55] print(stus.count(2))#查看某个元素在这个里面的个数,如果该元素不存在,那么返回0 print(stus.index(3))#找到这个元素的下标,如果有多个,返回第一个,如果找一个不存在的元素,会报错
返回:
0
5
实例四:
nums = [9,31,345,12,457,352,1214,2321] nums.sort(reverse=True)# sort排序,默认排序是升序,如果指定了reverse=True就是按照降序拍 print(nums)
返回:
[2321, 1214, 457, 352, 345, 31, 12, 9]
四、list循环
names = [1,2,3,4,5] for name in names: print(name) #如果直接for循环一个list的时候,那么每次循环的值都是这个list里面的元素
返回:
1 2 3 4 5