列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。列表的数据项不需要具有相同的类型。如 list = ['a','b',2,5,'1']
1、新建列表
stus = [] #创建空列表 stus1 = list() #创建空列表 print(stus) print(stus1) stus = ['范冰冰','维达','SOON','上述'] #创建非空列表 print(stus)
2、列表增加元素
stus = ['范冰冰','维达','SOON','上述'] stus.append('莉莉') #在列表末尾增加一个元素 stus.insert(2,'Lucy') #insert可以指定元素插入的位置 print(stus)
3、列表长度
stus = ['范冰冰','维达','SOON','上述'] print(len(stus))
4、修改列表元素
stus = ['范冰冰','维达','SOON','上述'] stus[3] = '哈哈' #直接找到下标,对元素赋值 print(stus)
5、列表删除元素
stus = ['范冰冰','维达','SOON','上述'] stus.append('莉莉') #在列表末尾增加一个元素 stus.insert(2,'Lucy') #insert可以指定插入的位置 print(stus) print(len(stus)) stus[3] = '哈哈' print(stus) stus.pop() #默认删除最后一个元素 stus.pop(2) #删除下标为2的元素 stus.remove('范冰冰') #传入元素值,直接删除元素。 remove时必须传值 del stus[1] #删除指定下标的元素 print(stus) stus.clear() #清空列表 print(stus)
stus.pop()、stus.remove()、 del stus[] 删除不存在的值时都会报错。
6、查询元素,查询元素下标
stus = ['范冰冰','维达','SOON','上述'] print(stus[2]) #查找指定下标的元素 print(stus.count('冰')) #查找指定元素出现的次数,注意一个列表元素按照一个整体处理,该值返回0
print(stus.index('维达')) #按照元素名称查询元素下标
注意,按照元素查询下标的时候,若列表中有多个该元素,则返回第一次出现的该元素的下标。如果元素不存在,则报错
7、列表反转
stus = ['范冰冰','维达','SOON','上述'] stus1 =[1,3,6,4,2,6,8,3] stus.reverse()#直接列表反转 stus2 = list(reversed(stus1))#使用list函数进行反转 print(stus2) print(stus) #注意,反转的时候不能直接print(stus.reverse())
另外,按照列表切片也可以进行反转。
print(stus[::-1])
8、列表排序
stus1 =[1,3,6,4,2,6,8,3] stus1.sort()#直接对列表进行排序 stus2 = list(sorted(stus1)) #按照list函数进行排序 print(stus2)
倒序排列
stus1 =[1,3,6,4,2,6,8,3] stus1.sort(reverse=True) #倒序排列 stus2 = list(sorted(stus1,reverse=True)) #按照list函数进行倒序排序 print(stus1) print(stus2)
#注意,排序的时候不能直接print(stus1.sort()
备注:排序默认按照正序排列
9、两个列表相连
stus = ['范冰冰','维达','SOON','上述'] stus1 =[1,3,6,4,2,6,8,3] stus1.extend(stus) #两个列表相连,把一个list中的元素添加到另外一个list中 print(stus1) #注意写法,不能直接print(stu1.extend(stus))
也可以连接自己,把自己输出两遍
10、列表操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
Python 表达式 | 结果 | 描述 |
---|---|---|
len([1, 2, 3]) | 3 | 长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 组合 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 |
3 in [1, 2, 3] | True | 元素是否存在于列表中 |
for x in [1, 2, 3]: print(x, end=" ") | 1 2 3 | 迭代 |
11、列表截取--切片
切片是list取值的一种方式。切片取值是顾头不顾尾,取到尾巴的时候要加1,前面一个下标,后面一个下标,中间是冒号,下标从0开始时,前面可以不写。
stus = ['范冰冰','维达','SOON','上述'] print(stus[2]) print(stus[-2]) print(stus[-2:]) print(stus[1:2]) print(stus[1:4:2])#步长为2时,中间隔一个
print(stus[::]) #复制一个新列表
print(stus[::-1]) #将原来的list倒序输出
- print(stu0[2:5])
- print(stu0[:5])代表从最前面开始取值
- print(str0[4:10]),取后面的值,要是取到末尾,那么后面的下标可以不用写 print(str0[4:])
- 什么下标都不写的时候,相当于是复制一个新的List,如 new_stu0=stu0[:]
- New_stu = stu[0],也是复制一个,但是在内存中的占用不一样
- print(stu0[0:10:1]) ,再加一个冒号代表步长,代表隔一个或者隔几个取一个
- print(stu0[0:10:2]),2的时候是跳过一个元素取一个值,
- print(stu0[::-1])步长为负数时,从右往左取值,步长是正数时,是从左往右取
12、列表循环
stus = ['杨静', '王志华', '王银梅', '乔美玲', '段鑫琪', '王立文', '赵燕', '杨华', '周永波', '杨静'] for index,stu in enumerate(stus,1):#同时取到下标和值 print("%s ==> %s"%(index,stu))
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。参数sequence为需要循环的序列,start为下标起始位置。
普通的list循环:可与上面对比
stus = ['杨静', '王志华', '王银梅', '乔美玲', '段鑫琪', '王立文', '赵燕', '杨华', '周永波', '杨静'] i = 0 for ele in stus: print(i,stus[i]) i = i +1
如果直接循环一个list,那么每次取的就是list里面的每一个元素
13、多维数组
stu0 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] stu1 = [1,2,3,4, ['a','b','c'], ['哈','呵'] ] stu1[5][0] = '哈哈' print(stu1) stu2 = [1,2,3,4,['a',['哈','哈','哈'],'b','c', ] ]#3维数组 stu2[4][1].insert(0,'呵呵呵') print(stu2)