您当前的位置:首页 > 计算机 > 编程开发 > Python

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

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

一、通用操作

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]

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

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