2025年3月29日 星期六 甲辰(龙)年 月廿八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

python精选07集(列表、常用函数)

时间:04-25来源:作者:点击数:41

一、通用操作

1、数学运算符

+:用于拼接两个容器

+=:用原容器与右侧容器拼接,并重新绑定变量

*:重复生成容器元素

*=:用原容器生成重复元素, 并重新绑定变量

< <= > >= == !=:依次比较两个容器中元素,一但不同则返回比较结果。

案例演示

  • 累计1-10的和
  • sum = 0
  • count = 0
  • for __ in range(11):
  • # range循环1-10结束
  • sum += count
  • count += 1
  • #输出时-1
  • print("总和为:"+str(sum)+",累加1-"+str(count-1))

2、成员运算符

语法:

  • 数据 in 序列
  • 数据 not in 序列

作用:如果在指定的序列中找到值,返回bool类型。

  • # 成员运算
  • str1 = "人生苦短我用Python"
  • print("人参" in str1) #False
  • print("人生" in str1) #True

二、列表(重点!很重要!)

1、 列表的定义

  • List(列表) 是Python中使用最频繁的数据类型,在其他语言中通常叫做数组
  • 专门用于存储一串 信息
  • 列表用[]定义,数据之间使用,分隔
  • 列表的索引0开始
    • 索引就是数据在列表中的位置编号,索引又可以被称为下标

注意:从列表中取值时,如果超出索引范围,程序会报错

  • name_list = ["zhangsan", "lisi", "wangwu"]

2、 列表常用操作

  • ipython3中定义一个列表,例如:name_list = []
  • 输入name_list.按下TAB键,ipython会提示列表能够使用的方法如下:
在这里插入图片描述
  • In [1]: name_list.
  • name_list.append name_list.count name_list.insert name_list.reverse
  • name_list.clear name_list.extend name_list.pop name_list.sort
  • name_list.copy name_list.index name_list.remove
序号 分类 关键字 / 函数 / 方法 说明
1 增加 列表.insert(索引, 数据) 在指定位置插入数据
    列表.append(数据) 在末尾追加数据
    列表.extend(列表2) 将列表2 的数据追加到列表
2 修改 列表[索引] = 数据 修改指定索引的数据
3 删除 del 列表[索引] 删除指定索引的数据
    列表.remove[数据] 删除第一个出现的指定数据
    列表.pop 删除末尾数据
    列表.pop(索引) 删除指定索引数据
    列表.clear 清空列表
4 统计 len(列表) 列表长度
    列表.count(数据) 数据在列表中出现的次数
5 排序 列表.sort() 升序排序
    列表.sort(reverse=True) 降序排序
    列表.reverse() 逆序、反转

案例演示

  • # 1.创建列表:有两种方式
  • # 列表名 = [] (里面可以是不同数据类型)
  • name_list = ["zhangsan", "lisi", "wangwu"]
  • # 2. 取值和取索引
  • # list index out of range - 列表索引超出范围
  • print(name_list[2]) # wangwu
  • print(name_list) # ['zhangsan', 'lisi', 'wangwu']
  • # 3. 查找对应的索引
  • # 知道数据的内容,想确定数据在列表中的位置
  • # 使用index方法需要注意,如果传递的数据不在列表中,程序会报错!
  • print(name_list.index("wangwu"))
  • # 4. 修改
  • name_list[1] = "李四"
  • # list assignment index out of range
  • # 列表指定的索引超出范围,程序会报错!
  • # name_list[3] = "王小二"
  • # 5. 增加元素
  • # append 方法可以向列表的末尾追加数据
  • name_list.append("王小二") # ['zhangsan', '李四', 'wangwu', '王小二']
  • # insert 方法可以在列表的指定索引位置插入数据
  • # 语法 :列表.insert(索引,元素)
  • name_list.insert(1, "林小六") # ['zhangsan', '林小六', '李四', 'wangwu', '王小二']
  • # extend 方法可以把其他列表中的完整内容,追加到当前列表的末尾
  • temp_list = ["蔡谋坤", "罗谋祥"]
  • name_list.extend(temp_list)
  • # 以上输出结果 ['zhangsan', '林小六', '李四', 'wangwu', '王小二', '蔡谋坤', '罗谋祥']
  • # 6. 删除
  • # remove 方法可以从列表中删除指定的数据
  • name_list.remove("wangwu")
  • # del 方法可以指定删除的索引
  • del name_list[-1] # 删除 '罗谋祥'
  • # pop 方法默认可以把列表中最后一个元素删除
  • name_list.pop() # 删除 '蔡谋坤'
  • # pop 方法可以指定要删除元素的索引
  • name_list.pop(3) # 删除'王小二'
  • # clear 方法可以清空列表
  • name_list.clear() # []

3、列表遍历

  • for循环遍历列表:

正向:for 变量名 in 列表名:  变量名就是元素 (不灵活)

  • # 只支持:正向顺序查找
  • list01 = [9,8,7,6,5,4,3,2,1]
  • # 只支持:正向顺序查找
  • for item in list01:
  • print(item)
  • # item = 0 # 不能修改

for 变量名 in (len(列表名)):  列表名[索引名]就是元素 (常用)

  • list01 = [9,8,7,6,5,4,3,2,1]
  • # 索引 + for 定义元素
  • # 获取列表中每个元素
  • # 正向
  • for i in range(len(list01)):
  • print(list01[i])
  • while循环遍历
  • list01 = [9,8,7,6,5,4,3,2,1]
  • i = 0
  • while i<len(list01):
  • print(list01[i])
  • i += 1

4、列表推导式

  • 定义:使用简易方法,将可迭代对象转换为列表。
  • 语法:
  • 变量 = [表达式 for 变量 in 可迭代对象]
  • 变量 = [表达式 for 变量 in 可迭代对象 if 条件]

说明:如果if真值表达式的布尔值为False,则可迭代对象生成的数据将被丢弃。

案例需求

  • list01 = [25, 89, 32, 15, 23, 66]
  • # 案例1:将列表1的所有元素加10后添加到列表2
  • list02 = [item + 10 for item in list01]
  • print(list02)
  • # 案例2: 将列表1的所有奇数元素加10后添加到列表2
  • list02 = [item + 10 for item in list01 if item % 2 ]
  • print(list02)
  • # 案例3:判断1990年到2020年之间的闰年存入列表
  • # 思路:先把简单的循环判断写出来再转换成推导式
  • list03 = []
  • #for year in range(1999, 2020):
  • # if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
  • # list03.append(year)
  • list03 = [year for year in range(1999,2020) if year % 4 ==0 and year % 100 !=0 or year % 400 == 0 ]
  • print(list03)

总结:推导式语法中把表达式当作输出的值

5、列表嵌套

  • 类似while循环的嵌套,列表也是支持嵌套的
  • 一个列表中的元素又是一个列表,那么这就是列表的嵌套

案例演示

  • schoolNames = [['北京大学','清华大学'],
  • ['广东大学','广西大学','武汉大学'],
  • ['山东大学','海洋大学']]
  • print(schoolNames)

输出结果

  • [['北京大学', '清华大学'], ['广东大学', '广西大学', '武汉大学'], ['山东大学', '海洋大学']]

6、综合练习

案例需求

  • 一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配
  • import random
  • office = [[],[],[]] # 定义一个列表保存3个办公室
  • # 定义一个列表储存8位老师
  • teacher = ['A','B','C','D','E','F','G','H']
  • i = 0
  • for i in teacher:
  • index = random.randint(0,2)
  • office[index].append(i)
  • i = 1
  • for tempNames in office:
  • print('办公室%d的人数为:%d'%(i,len(tempNames)))
  • i+=1
  • for name in tempNames:
  • print("%s"%name,end='')
  • print("\n")
  • print("-"*20)

输出显示

在这里插入图片描述

三、列表与字符串(区分)

1.列表和字符串都是序列,元素之间有先后顺序关系。

2.字符串是不可变的序列,列表是可变的序列。

3.字符串中每个元素只能存储字符,而列表可以存储任意类型。

4.列表和字符串都是可迭代对象。

案例演示:

字符串转列表

  • 将一个字符串拆分为多个。
  • Eg: 列表 = “a-b-c-d”.split(“分隔符”)
  • str01 = "人-生-苦-短"
  • # 通过split函数将 "任意"分割转化为列表
  • res = str01.split("-")
  • print(res)
  • # ['人', '生', '苦', '短']

列表转字符串

  • 将多个字符串拼接为一个。
  • Eg: res= “连接符”.join(列表)
  • list01 = ['人', '生', '苦', '短']
  • res02 = " ".join(list01)
  • print(res02)
  • # 人 生 苦 短

四、内建函数

  • 假设x为变量
  • len(x) 返回序列的长度
  • max(x) 返回序列的最大值元素
  • min(x) 返回序列的最小值元素
  • sum(x) 返回序列中所有元素的和(元素必须是数值类型)
  • count(x)返回统计列表中该元素存在的次数

案例需求

  • 录入多名同学身高,如果数据为空则停止。
  • 打印输出最高分,最低分,平均分
  • stu_height = []
  • while True:
  • inp_height = input("请输入同学身高:")
  • if inp_height == "":
  • break
  • stu_height.append(int(inp_height))
  • print("最高:%d" % max(stu_height))
  • print("最低:%d" % min(stu_height))
  • print("平均:%.2f" % (sum(stu_height) / len(stu_height)))

输出显示

在这里插入图片描述

作业

name_list = [“张三”, “李四”, “王五”, “王小二”, “张三”, “张三”]

1、统计张三出现的次数

2、从列表中删除第一次出现的数据

name_list = [“zhangsan”, “lisi”, “wangwu”, “wangxiaoer”]

num_list =[6, 8, 4, 1, 10]

将两组列表进行升序、降序、逆序(反转)、迭代遍历

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门