列表是最常用的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=0for ele instus: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)