python学习03

本文介绍了Python中的list列表,包括概念、创建、访问元素、操作及功能,特别是二维列表的遍历。同时,讲解了for-in循环的用法,列表生成器,以及如何遍历和嵌套遍历列表,是Python初学者的重要参考资料。

一.list列表

1.概念

变量:使用变量存储数据,但是变量存储数据每次只能存储一个数据
问题:如果一次性存储多个数据,该怎么做
#需求:存储5个人的年龄,求年龄的平均值
age1=10
age2=15
age3=20
age4=25
age5=30
avg=(age1+age2+age3+age4+age5)/5
print(avg)

解决办法:采用列表
作用:相当于一个容器,可以同时存储多个数据
本质:列表是一种有序的集合
说明:有序指的是有顺序【存储的存放顺序和在内存中存储的顺序是相同的】

2.创建列表

num=10
语法:
变量名=列表
列表名称=[数据1,数据2,数据3......]
说明:
a.通过[]定义列表
b.列表中存储的数据被称为元素
c.列表中的元素会从头到尾进行编号,编号从0开始,这个编号被称为索引,角标或者下标
d.索引的取值范围:0~列表中元素的个数-1【0~列表的长度-1】
e.超过索引的范围:列表的索引越界
代码演示:
#1.创建空列表
#注意:列表的命名:一般情况下使用listxxx lxxx,而不要直接使用list
list1=[]
print(list1)

#2.创建一个有元素的列表
list2=[10,30,54,5,6]
print(list2)

#3.思考问题;在同一个列表中能不能存储不同类型的数据?—————》能
list3=[True,None,"hello",10]
print(list3)

#注意;将需要存储的数据存储到列表中,不需要考虑列表的大小,如果遇到数据量很大的情况,在进行存储操作的时候,列表会自动扩容

3.列表中元素的访问

3.1取值

代码演示:
#元素的访问
#1.取值
#语法:列表名[索引]

#索引;0-4
list1=[543,5,46,56,6]
num1=list1[2]
print(list1)
print(num1)

#列表索引越界的时候会有错误提示

3.2替换值

代码演示:
#2.替换值
#语法:列表名[索引]=新值【列表中的元素本质上是一个变量,所以替换值得操作实际上就是给变量重新赋值】
list1[2]=100
print(list[2])

4.列表的操作

代码演示:
#列表的操作
#1.列表组合:+
list1=[54,5,45,4]
list2=["abc","fhj","ghif"]
#列表的组合并没有修改原来的列表,而是生成了一个新的列表
list3=list1+list2
print(list1)
print(list2)
print(list3)

#2.列表元素重复;*
#2.1列表中可以存储重复元素
l1=[20,20,40,45,54,20]
print(l1)
#2.2
l2=[10,20,30]
l3=l2*3
print(l3)

#3.判断元素是否在列表中;成员运算符[in  not in]
#注意:成员运算符运算的结果为布尔值
#一般会结合if语句使用
l4=[34,54,56,"abc"]
print(34 in l4)
print(34 not in l4)
print(100 in l4)
print(100 not in l4)

#4.列表的截取【切片】
#4.截取指定的区间:列表名[开始索引:结束索引]
#特点:涉及到区间,包头不包尾,前闭后开区间:[2,4)
l5=[34,54,56,"abc",5,65,76,7677]
print(l5[2:4])

#4.2从开头截取到指定位置
print(l5[0:5])
print(l5[:5])

#4.3从指定位置截取到结尾
print(l5[3:7])
print(l5[3:])
#注意;如果要取到最后一个元素,可以超过索引的范围,在这种情况下是不会报错的
print(l5[3:20])

5.列表的功能

语法:列表名.功能名()
#1.添加元素
#1.1 append():在列表元素的末尾 追加元素
list11=[10,20,30]
print(list11)
#追加单个元素
list11.append(40)
print(list11)
#追加多个元素是,不能直接追加,通过列表的形式追加
list11.append([50,60])
print(list11)

#1.2 extend():扩展,在列表的末尾添加元素
list12=[10,20,30,40]
list12.extend([50,60])
print(list12)
#注意:使用extend添加多个元素,extend不能直接添加单个元素,仍然采用列表的形式添加,但是,实际上添加的只是元素【打碎添加】
#1.3insert():插入,在指定索引处插入元素
#格式:insert(索引,插入的数据)
list13=[10,20,30]
print(list13)
list13.insert(2,40)
print(list13)
#注意:插入一个列表,会将整个列表插入到原列表中
list13.insert(1,[50,60])
print(list13)

#2.删除元素
#2.1pop(索引):弹出,移除列表中指定的元素
list21=[10,20,30,40,50,60]
print(list21)
#pop默认移除的是最后一个元素,得到的结果为被移除的元素
result1=list21.pop()
print(list21)
print(result1)
#移除指定位置的元素
list21.pop(2)
print(list21)
#2.2remove():移除,特点:移除的是列表中的元素【在列表中从零开始能够匹配到的第一个元素】
list22=[10,20,30,40,50,60]
print(list22)
list22.remove(10)#等价于list22.pop(0)
print(list22)

#需求:移除列表中所有的元素10
list23=[10,20,30,40,50,60,10,10,10,10,10,10]
num=0
element=10
cou=list23.count(element)
while num<cou:
	list23.remove(element)
	print(list23)
	num+=1
print(list23)

#2.3 clear():清除,清除列表中的所有元素,原列表变为空列表
list24=[10,20,30,40,50,60,10,10,10,10,10,10]
list24.clear()
print(list24)

#3.获取
#语法;功能名(列表名)
#3.1len() length,获取列表的长度【获取列表中元素的个数】
list31=[10,20,30,40,50,60,10,10,10,10,10,10]
length=len(list31)

#3.2max():获取列表中元素的最大值 min():最小值
print(max(list31))
print(min(list31))

#3.3index():个数,查找指定元素在列表中出现的次数
c=list31.count(10)
print(c)

#4.其它
#4.1reverse(): 反转,将列表中的元素倒序输出
list41=[10,20,30,40,50,60,10,10,10,10,10,10]
list41.reverse()
print(list41)

#4.2sort():排序,默认为升序排列,注意:在列表的内部操作
#升序
list41.sort()
print(list41)
#降序
list41.sort(reverse=True)
print(list41)

#sorted()排序:默认为升序排列,注意:生成一个新的列表
list42=[10,20,30,40,50,60,10,10,10,10,10,10]
#升序
newList1=sorted(list42)
print(list42)
print(newList1)
#降序
newList2=sorted(list42,reverse=True)
print(newList2)

#按照长度排序
list43=["fhugjk","g","ghg"]
newList3=sorted(list43,key=len)
print(newList3)

#4.3拷贝【面试题】
#浅拷贝
#深拷贝
#a.从内存的角度
#浅拷贝:引用【栈空间】
#深拷贝:内存【实体,堆空间】

6.二维列表

本质:一维列表,只不过列表中和的元素仍然是一个列表

掌握:二维列表的遍历

三.for-in循环

1.用法

语法:
 for 变量名 in 列表:
 循环体
功能:for循环主要用于遍历列表【遍历:指的是依次访问列表中的每一个元素,获取每个元素值】
说明:按照顺序获取列表中的每个元素,会赋值给变量,执行循环体,循环的次数取决于列表的长度
代码演示:
#需求;将列表中的元素全部打印出来
list1=["and","abc",567]
print(list1[0])
print(list1[1])
print(list1[2])

#使用for遍历列表,for循环主要结合成员运算符使用
for element in list1:
	print(element)
#用while实现
num=0
while num<len(list1):
	print(list1[num])
	num+=1

#注意:在遍历列表的时候,for循环主要操作的是元素,while循环主要操作的是索引

#else分支:for遍历完列表之后,最后才执行else分支
for x in [43,546,4656,5]:
	print(x)
else:
	print("over")

2.列表生成器

#random.choice(range(100))
#range([start,]end[,step]) 注意:[]表示start和step可写可不写
#start;开始数字
#end:结束数字
#step:步长
#注意:start默认为0,step默认为1
#功能:生成具有一定规律的列表
#代码演示:
#问题: for x in 列表,直接操作的是元素,for循环能不能操作列表中的索引?——》列表生成器【生成一个和索引有关的列表】
list1=[43,65,6,576,7]
#操作元素
for x in list1:
	print(x)
#操作索引
#例如:
#range(100):生成一个0-99的整数列表【不包含100】
#range(1,100):生成一个1-99的整数列表
#range(1,100,2):在1-99的范围内,生成一个奇数列表
indexList=range(0,len(list1))
for i in indexList:
	print(i)
	print(list1[i])

练习

#1.计算1-100之间所有整数的和
sum1=0
for x in range(1,101):
	sum1+=x
print(sum1)

#2.计算1-100之间所有偶数的和
#方式一
sum1=0
for x in range(0,101,2):
	sum1+=x
	
#方式二
sum1=0
for x in range(1,101):
	if x%2==0:
		sum1+=x

3.遍历列表

代码演示:
list1=[54,5,465,5]

#1.直接操作的是元素
for element in list1:
	print(element)

#2.操作索引
for i in range(len(list1)):
	print(i,list1[i])
	
#3.同时遍历索引和元素
#enumerate:枚举【类似于一个容器】
for i,element in enumerate(list1):
	print(i,element)

4.嵌套for循环

代码演示:
#二维列表的遍历
list2=[[23,54,64,6],[54,4,65],[54,65,657]]
subList=list2[1]
print(subList)
print(subList[1])
print(list2[1][1])

#嵌套for循环
for subList in list2:
	for element in subList:
		print(element)

#打印九九乘法表
i=1
while i<=9:
	j=1
	while j<=i:
		print("%dx%d=%d"%(j,i,i*j),end="")
		j+=1

#外层循环:控制行
for i in range(1,10):
	#内层循环:控制列
    for i in range(1,i+1):
		print("%dx%d=%d"%(j,i,i*j),end="")
	print("")

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值