Python基础语言学习 day 6 ——列表的遍历、增删改、相关操作、函数和方法

一、遍历列表 - 将列表一个一个的取出

1)直接获取列表元素
for 变量 in 列表:
循环体
2)通过遍历列表中每个元素的下标,来遍历获取列表中的元素
for 变量 in range(列表长度):
循环体(循环体中变量获取到的是列表中每个元素的下标,从0开始的下标)
正向下标开始:列表[0,len(列表) -1,1]

​ 负向下标开始:列表[-1,len(列表) -1,-1]

3)同时获取列表中每个元素的下标和每个元素
for in 变量1 inenumeratet(列表):循环体(循环体中变量的)

案例:

tvs = ['甄嬛传','琅琊榜','仙剑','金粉世家','亮剑','爱情公寓','庆余年']

遍历方式1

for x in tvs:print(x)
#甄嬛传
琅琊榜
仙剑
金粉世家
亮剑
爱情公寓
庆余年

遍历方式2

print(len(tvs))
for x in range(len(tvs)):print(x,tvs[x])#
0 甄嬛传
1 琅琊榜
2 仙剑
3 金粉世家
4 亮剑
5 爱情公寓
6 庆余年
for x in range(-1,-len(tvs)-1, -1):print(x,tvs[x])#
-1 庆余年
-2 爱情公寓
-3 亮剑
-4 金粉世家
-5 仙剑
-6 琅琊榜
-7 甄嬛传

遍历方式3

for index,item in enumerate(tvs):print(index, item)#
0 甄嬛传
1 琅琊榜
2 仙剑
3 金粉世家
4 亮剑
5 爱情公寓
6 庆余年

练习 1 :1)求平均分 2)统计不及格学生的人数

scores = [89,78,61,92,20,63,51]
count = 0
sum = 0
for i in scores:sum += iif i < 60:count += 1
print('平均分为:',sum / len(scores),'不及格人数为:',count)
# 平均分为: 64.85714285714286 不及格人数为: 2
二、增、删、查、改
1.增 - 往列表中添加元素
1)列表.append(元素) — 在指定列表最后添加指定元素

names = ['肖申克的救赎','霸王别姬','阿甘正传']

print(names) #['肖申克的救赎','霸王别姬','阿甘正传']names.append('恐怖游轮')
print(names)
#['肖申克的救赎', '霸王别姬', '阿甘正传', '恐怖游轮']names.append('沉默的羔羊')
print(names)
#['肖申克的救赎', '霸王别姬', '阿甘正传', '恐怖游轮', '沉默的羔羊']
2)列表.insert(下标, 元素) - 将指定元素插入到列表中指定下标对应的元素
names.insert(1,'加勒比海盗')
print(names)
#['肖申克的救赎', '加勒比海盗', '霸王别姬', '阿甘正传', '恐怖游轮', '沉默的羔羊']

案例:提取num中所有的偶数

num = [89,78,60,77,43,22,22,40]
list =[]
for i in num:if i% 2 == 0:list.append(i)
print(list)
#[78, 60, 22, 22, 40]

练习:删除scores中不及格的分数

scores = [89, 78, 61, 92, 20, 63, 51]
# [89, 78, 61, 92, 63]
count =0
list =[]
for i in scores:if i < 60:count += 1list.append(i)
print(list)
#[20, 51]

练习:将scores中所有不及格的分数修改成’重修’

scores = [89, 78, 61, 92, 20, 63, 51]
# [89, 78, 61, 92, '重修', 63, '重修']
list =[]
for i in scores:if i < 60:list.append('重修')else:list.append(i)
print(list)
#[89, 78, 61, 92, '重修', 63, '重修']
2.删 - 删除元素
1) del 列表[下标] - 删除列表的指定下标对应的元素
names = ['肖申克的救赎', '加勒比海盗', '霸王别姬', '阿甘正传', '恐怖游轮', '沉默的羔羊']
print(names)
del names [1] #['肖申克的救赎', '霸王别姬', '阿甘正传', '恐怖游轮', '沉默的羔羊']
print(names)
2)列表.remove(元素) – 删除列表中的指定元素
names = ['肖申克的救赎', '霸王别姬', '阿甘正传', '恐怖游轮']
names.remove('霸王别姬')
print(names)
names.remove('长江七号')  #ValueError: list.remove(x): x not in list
3)pop(从原来的列表中没有该元素,保留数据,元素未消失)

列表.pop(下标) - 取出列表中指定下标对应的元素

列表.pop() - 取出列表中最后一个元素并且返回

names= ['肖申克的救赎', '加勒比海盗', '霸王别姬', '阿甘正传', '恐怖游轮', '沉默的羔羊']

result = names.pop(-2)
print(names)
print(result)
#['肖申克的救赎', '加勒比海盗', '阿甘正传',  '恐怖游轮', '沉默的羔羊']
result = names.pop()
print(names)
print(result)
#['肖申克的救赎', '霸王别姬', '阿甘正传', '恐怖游轮']
  1. 改 - 修改元素的值

列表[下标] = 值 - 修改指定下标对应的元素

scores = [67, 40, 50, 78, 30, 60, 55, 39]
scores[0] = 90
print(scores)
#[90, 40, 50, 78, 30, 60, 55, 39]

三、列表的相关操作

1.列表数学运算:+ 、 *

1)列表1 + 列表2 - 将列表中的元素和列表2中的元素进行合并,产生一个新的列表

list1 =[10,20,30]
list2 = [100,200,'abc']

list3 = list1 + list2
print(list3)
#[10, 20, 30, 100, 200, 'abc']
  1. 列表 * N - 重复N次列表中的元素产生新的列表
print(list2 * 2)
2.列表的比较运算:>、 <、 >=、 <=、 ==、 !=
1)判断是否相等

两个列表一摸一样的时候才相等

print(list1 == [10,20,30]) #True
print(list1 == [20,10,30]) #False

2)比较大小 – 比较需要比较的列表中拿同一下标值对应的元素进行比较

列表1 > 列表2
print([10,20,30,100] > [10,22,30])  #False
print([10,20,30,100] > [10,20,'abc'])
#TypeError: '>' not supported between instances of 'int' and 'str'
  1. in 和 not in

数据 in 列表 - 判断列表中是否存在指定的数据

数据 not in 列表 - 判断列表中是否不存在指定的数据

list1 =[10,20,30]
print(10 in list1)
# print(1 in list)  #False
print([10,20] in list1)  #False
print(10 in [[10,20], 30][0] )  #True
# [[10,20], 30][0]  --> 列表[0]  --> [10,20]
# list = [[10,20], 30] --> 列表[0]  --> [10,20]

练习:去掉 nums 中重复的元素

nums = [10, 23, 40, 10, 55, 23, 40, 10]
nums1 = []
for i in nums:if i not in nums:nums.append(i)
print(nums)
#[90, 40, 50, 78, 30, 60, 55, 39]
四、列表的相关函数
1. max 、min

max(列表) - 获取列表中的最大值

min(列表) - 获取列表中的最小值

scores = [19,89, 93, 80, 76, 62, 56]
print(max(scores))
#93
print(min(scores))
#19

案例:在不使用max的情况下,求scores中最高分

scores = [19,89, 93, 80, 76, 62, 56]
max1 = 19
for i in scores[1:]:if i > max1:max1= i
print(max1)
#93
  1. sorted

sorted(列表) - 将列表中的元素从小到大排序,创建一个新的列表

sorted (列表, reverse=True) - 将列表中的元素从大到小排序,创建一个新列表

nums = [90, 83, 62, 77, 59, 81]
new_nums = sorted(nums)
print(new_nums)
# [59, 62, 77, 81, 83, 90]
new_nums = sorted(nums, reverse=True)
print(new_nums)
# [90, 83, 81, 77, 62, 59]
  1. sum

    sum(列表) - 求列表中所有的元素的和

scores = [19,89, 93, 80, 76, 62, 56]
print(sum(scores))
  1. len

len(列表) - 获取列表中元素的个数(长度)

scores = [19,89, 93, 80, 76, 62, 56]
print(len(scores))
# 7
  1. list

list(数据) - 将指定列表转换成列表(数据必须是序列(容器) - 所有的序列都可

result = list('abc')
print(result)  #['a', 'b', 'c']
print(list('123'))  #['1', '2', '3']

五、列表相关方法

列表.xxx()

1.列表.clear() - 清空列表
nums = [90, 83, 62, 77, 59, 81]
nums.clear()
print(nums)
# []
2.列表.copy() - 复制列表产生一个一模一样的新列表,将新列表返回
nums = [90, 83, 62, 77, 59, 81]
result = nums.copy()
print(result)
#[90, 83, 62, 77, 59, 81]
3.列表.count(元素) - 统计列表中指定元素的个数
nums = [4, 56, 10, 90, 80, 90, 10, 10]
print(nums.count(10))
# 3
print(nums.count(90))
# 2
print(nums.count(100))
# 0
4.列表.extend(序列) - 将序列中所有的元素都添加到列表的最后
nums = [90, 83, 62, 77, 59, 81]
list1 = ['abc', 100, '你好']
#[90, 83, 62, 77, 59, 81, 'abc', 100, '你好']
nums.extend(list1)
print(nums)
# [90, 83, 62, 77, 59, 81, 'abc', 100, '你好']
nums.extend('abc')
print(nums)
# [90, 83, 62, 77, 59, 81, 'abc', 100, '你好', 'a', 'b', 'c']
5.列表.index(元素) - 获取指定元素在列表中的下标值(从0开始下标的下标值)
nums = [90, 83, 62, 77, 59, 81]
print(nums.index(83))       # 1
print(nums.index(81))       # 5
print(nums.index(100))      # ValueError: 100 is not in list
nums = [90, 83, 62, 77, 83, 59, 81]
print(nums.index(83))
# 1
5.列表.reverse() - 将列表倒序
nums = [90, 83, 62, 77, 59, 81]
nums.reverse()
print(nums)
# [81, 59, 77, 62, 83, 90]
  1. sort
列表.sort() - 将列表中元素从小到大排序
列表.sort(reverse=True) - 将列表中元素从大到小排序
nums = [90, 83, 62, 77, 83, 59, 81]
result = nums.sort()
print('方法1:', nums, result)
#方法1: [59, 62, 77, 81, 83, 83, 90] None
nums = [90, 83, 62, 77, 83, 59, 81]
result = sorted(nums)
print('方法2:', nums, result)
#方法2: [90, 83, 62, 77, 83, 59, 81] [59, 62, 77, 81, 83, 83, 90]

六、列表推导式

1. 结构 1
语法:
[表达式 for 变量 in 序列]
创建列表的原理:
让变量去序列中取值,一个一个的取,取完为止,每取一个值就计算一次表达式的结果并且将计算的结果作为列表的元素
result = [10 for x in range(5)]
print(result)
#[10, 10, 10, 10, 10]result = [x for x in range(5)]
print(result)
#[0, 1, 2, 3, 4]result = [10*x for x in range(5)]
print(result)
#[0, 10, 20, 30, 40]

练习:用列表推导式将nums中所有的元素都乘以2

nums = [19, 45, 6, 7]
# [38, 90, 12, 14]
result = [x*2 for x in nums]
print(result)

练习:获取nums中所有元素的十位数

nums = [189, 78, 102, 99]
# [8, 7, 0, 9]
result =[x // 10 % 10 for x in nums]
print(result)

练习:将scores中所有的元素变成’及格’或者’不及格’

scores = [89, 70, 56, 42, 99, 81, 44]
# ['及格', '及格', '不及格', '不及格', '及格', '及格', '不及格']
# 三目运算:'及格'if x > 60 else '不及格'
result = ['及格'if x > 60 else '不及格'for x in scores]
print(result)
2. 结构2
[表达式 for 变量 in 序列 if 条件语句]
创建列表的原理:让变量去序列中取值,一个一个的取,取完为止,没去一个就判断一次条件是否成立,如果成立就计算表达式的结果作为列表的元素,如果不成立,就不计算表达式的结果
result = [x*2  for x in range(10) if x % 2 == 0]
print(result)
#[0,2,4,6,8]*2  -->[0, 4, 8, 12, 16]

练习:删除nums中多有大于70的奇数

nums = [90, 83, 62, 77, 59, 81]
# [90, 62, 59]
result = [x for x in nums if  not (x > 70 and x % 2 !=0)]
print(result)

练习2:获取nums中的所有偶数,并且将偶数除以1

nums = [90, 83, 62, 77, 59, 81]
# [45, 31]
result = [x / 2 for x in nums if x % 2 ==0]
print(result)

Python基础语言学习 day 6 ——列表的遍历、增删改、相关操作、函数和方法相关推荐

  1. go语言学习第八天==》mysql数据库增删改查、用go语言 客户端(client)发起htttp get请求,post请求,postForm请求,Head请求,Do请求

    go语言学习第八天==>mysql数据库增删改查.用go语言写 客户端(client)发起htttp get请求,post请求,postForm请求,Head请求,Do请求 引包 import的 ...

  2. MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物

    MySQL基础知识-MySQL概述安装,单表增删改查,函数,约束,多表查询,事物 前言 1.MySQL概述 1.1数据库相关概念 1.2MySQL数据库 1.2.1版本 1.2.2下载 1.2.3安装 ...

  3. mysql 增删修模型_48.Python中ORM模型实现mysql数据库基本的增删改查操作

    首先需要配置settings.py文件中的DATABASES与数据库的连接信息, DATABASES = { 'default': { 'ENGINE': 'django.db.backends.my ...

  4. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  5. 前端学习(1350):用户的增删改查操作7增删改查

    demo25.js //创建http连接 const http = require('http'); //创建服务器 const app = http.createServer(); //第三方模块导 ...

  6. 前端学习(1349):用户的增删改查操作6删除

    //创建http连接 const http = require('http'); //创建服务器 const app = http.createServer(); //第三方模块导入 const mo ...

  7. 前端学习(1348):用户的增删改查操作5修改

    //创建http连接 const http = require('http'); //创建服务器 const app = http.createServer(); //第三方模块导入 const mo ...

  8. 前端学习(1347):用户的增删改查操作4修改

    //创建http连接 const http = require('http'); //创建服务器 const app = http.createServer(); //第三方模块导入 const mo ...

  9. 前端学习(1346):用户的增删改查操作3增加

    //创建http连接 const http = require('http'); //创建服务器 const app = http.createServer(); //第三方模块导入 const mo ...

  10. 前端学习(1345):用户的增删改查操作2

    //创建http连接 const http = require('http'); //创建服务器 const app = http.createServer(); //第三方模块导入 const mo ...

最新文章

  1. poj 1006 java_POJ 1006 Biorhythms 数论-(孙子定理)
  2. php try catch
  3. android的时间代码怎么写,Android 日期和时间的使用实例详解
  4. oracle10数据库链接失败,Oracle10g出现Enterprise Manager 无法连接到数据库实例解决办法...
  5. 如何删除github远程仓库?三部搞定!
  6. 大道至简第三章。感受。
  7. 具体数学-第14课(牛顿级数和生成函数)
  8. C语言判断一个数是否为素数
  9. 树莓派pi 4 编译 linuxcnc
  10. 合肥科学岛安光所计算机应用,国家大气污染防治攻关联合中心成立 合肥科学岛安光所承担重任...
  11. Scratch 3.0 指令大全-“运动”类别的详细介绍②
  12. [转]在VC中彻底玩转Excel
  13. 基于聚合数据的移动联通基站API接口的php完整代码实例
  14. 三维激光雷达点云匹配最近工作总结
  15. 图解 Cisco IOS 命名规范
  16. React中使用highcharts画玫瑰图
  17. pycharm(Idea)破解到2100年
  18. 利用ROUNDUP函数进行内存对齐
  19. 盒子模型(Box Model)
  20. 【计算+大数据】-武汉理工大学主办-2021年第四届计算与大数据国际会议(ICCBD 2021)

热门文章

  1. web前端开发工具支持及环境搭建
  2. 人活着,到底为了啥?
  3. 魂斗罗4 java 7723_FC魂斗罗4游戏下载-魂斗罗4FC无敌修改版下载-电玩咖
  4. TIA protal与SCL从入门到精通(6)——函数循环处理
  5. 做一个业务中台你到底会踩多少坑?
  6. 解决ios微信端video全屏
  7. Linux系统安装,教你安装一个属于自己的Linux系统
  8. hosts文件导致无法网页观看视频
  9. 树莓派自动连接WiFi
  10. 大数据如何赋能产品—用户特征分析