python-----列表(list)下
一、添加、修改和删除列表元素
添加、修改和删除列表元素也称为更新列表。在实际开发时,经常需要对列表进行更新。下面我们就分别如何实现列表元素的添加、修改和删除。
1、添加元素
在前面我们说过了“+”号将两个序列连接,该方法也可以实现为列表添加元素。但是这种方法的执行速度要比直接使用列表对象的append()方法慢,所以建议在实现添加元素时,使用列表对象的append()方法实现。列表对像的append()方法用于在列表的末尾追加元素,语法格式如下:
listname.append(obj)
其中,listname为要添加元素的列表名称;obj为要添加到列表末尾的对象。
例如,定义一个包括4个元素的列表,然后应用append()方法向该列表的末尾再添加一个元素,可以使用下面的代码:
nba2 = ["姚明","郭艾伦","易建联","林书豪","王大治","周琦","巴勒","詹姆斯","奥尼尔"] nba2.append("字母哥") print(nba2) print(len(nba2))
执行结果:
['姚明', '郭艾伦', '易建联', '林书豪', '王大治', '周琦', '巴勒', '詹姆斯', '奥尼尔', '字母哥']
10
列表对象除了提供append()方法可以向列表中添加元素外,还提供了insert()方法可以向列表中添加元素,该方法用于向列表的指定位置插入元素。但是由于该方法的执行效率没有append()高,所以不推荐使用。
例:
nba2.insert(1,"张晓鹏") #执行效率没有append高 print(nba2)
执行结果:['姚明', '张晓鹏', '郭艾伦', '易建联', '林书豪', '王大治', '周琦', '巴勒', '詹姆斯', '奥尼尔', '字母哥']
上面介绍的是向列表中添加元素,如果想要将一个列表中的元素添加到另一个列表中,可以使用列表对象的extend()方法实现。extend()方法的语法如下:
listname.extend(seq)
其中,listname为愿列表;seq为要添加的列表。语句执行后,seq的内容将追到listname的后面。
team = ["火箭队","勇士","雷霆","开拓者","爵士"] nba2.extend(team) print(nba2)
执行结果:['姚明', '张晓鹏', '郭艾伦', '易建联', '林书豪', '王大治', '周琦', '巴勒', '詹姆斯', '奥尼尔', '字母哥', '火箭队', '勇士', '雷霆', '开拓者', '爵士']
2、修改元素
修改列表中的元素只需要通过索引获取该元素,然后再为其赋值即可,例如定义一个保存3个元素的列表,然后修改索引值为2的元素,代码如下:
team = ["火箭队","勇士","雷霆","开拓者","爵士"] team[2]="辽宁" print(team)
执行结果:['火箭队', '勇士', '辽宁', '开拓者', '爵士']
3、删除元素
删除元素有两种情况,一种是根据索引删除,另一种是根据元素值删除。下面分表进行介绍哦:
根据索引删除
删除列表中的指定元素和删除列表类似,也可以使用del语句实现,所不同的就是在指定列表名称时,换为列表元素。例如,定义一个保存3个元素的列表,删除最后一个元素,可以使用下面代码:
#删除元素,索引删除,根据元素值删除 del team[2] #可以通过负数索引删除 print(team) #根据索引删除
根据元素值删除
如果想要删除一个不确定其位置的元素,可以使用列表对象的remove()方法实现。例如,要删除列表中内容“勇士”可以使用下面代码:
if "爵士"in team: #先判断会防止删除的元素不在列表中报错team.remove("爵士") print(team) team.remove("勇士") #直接删除 print(team)
说明:列表对象的count()方法用于判断指定元素出现的次数,返回结果为0时,表示该元素不存在。
二、对列表进行统计
python的列表提供了内置的一些函数来实现统计放面的功能。
1、获取指定元素出现的次数
使用列表对象的count()方法可以获取指定元素在列表中出现的次数,语法如下:
listname.count(obj)
其中,listname表示列表的名称;obj表示要判断是否存在的对象,这里只能进行精确的匹配,即不嫩式元素值的一部分。
#count() 元素在列表中出现的次数 listname.count(obj) 精确匹配
song = ["我","ni","ta","ta"]
number = song.count("ta")
print(number)
执行结果:2
2、获取指定元素首次出现的下标
使用列表对象的index()方法可以获取指定元素在列表中首次出现的位置(索引),语法如下:
#index() 元素在列表中首次出现的位置索引 或者下标 listname.index(obj) song = ["我","ni","ta","ta"] number = song.index("ni") print(number)
执行结果:1 #表示出现的位置为1
如果指定的对象不存在,则会报错
3、统计数值列表元素和
在python中,提供了sum()函数用于统计数值列表中各元素的和,语法如下:
sun(iterable[,start])
iterable:表示要统计的列表
start:表示统计结果是从哪个数开始(将统计结果加上start所指的数),是可选参数,如果没有指定,默认为0
例:
age = [29,27,28,29,26,20,22] he = sum(age) print(he) he = sum(age,1000) #在原基础上再加1000 print(he)
执行结果:181
1181
三、对列表进行排序
在实际开发时,经常需要对列表进行排序。python中提供了两种常用的对列表进行排讯的方法:
1、使用列表对象的sort()方法实现
列表队形提供了sort()方法用于对原列表中的元素进行排序,排序后原列表的顺序将发生改变。列表对象的sort()方法的语法格式如下:
listname.sort(key=name,reverse=False)
参数说明如下:
listname: 表示要进行排序的列表。
key:表示指定一个从每个列表元素中提取一个比较键(key=str.lower表示在排序时不区分字母大小写)。
reverse:可选参数,如果将其值指定为Ture,则表示降序排列;如果将其指定为False,则表示升序排列,默认为升序排列。
例:
age = [29,27,28,29,26,20,22] print("原列表:",age) age.sort() #升序排列 print("升序:",age) char = ["cat","Egg","with"] char.sort() #升序排列 print("升序:",char) char = ["cat","Egg","with"] char.sort(key=str.lower) #不区分大小写进行升序排列 print("升序:",char)
执行结果:
原列表: [29, 27, 28, 29, 26, 20, 22]
升序: [20, 22, 26, 27, 28, 29, 29]
升序: ['Egg', 'cat', 'with']
升序: ['cat', 'Egg', 'with']
说明:采用sort()方法对列表进行排序时,对于中文支持不好。排序的结果与我们常用的按拼音或笔画都不一致。如果需要实现对中文的列表排序,还需要重新编写相应的方法进行处理,不能直接使用sort()方法。
2、使用内置的sorted()函数实现
在python中,提供了一个内置的sorted()函数,用于对列表进行排序。使用该函数排序后,愿列表的元素顺序不变。sorted()函数语法如下:
使用内置的sorted()函数 注意:原列表元素顺序不变 需要建立副本sorted(iterable,key=None,reverse=False) 升序
char = ["cat","Egg","with"] char1=sorted(char) #升序排列 print(char1) char2=sorted(char,reverse =True) #降序排列 print(char2)
执行结果:['Egg', 'cat', 'with']
['with', 'cat', 'Egg']
四、列表推导式
使用列表推导式可以快速生成一个列表,或者根据某个列表生成满足指定需求的列表。列表推导式通常有以下几种常用的语法格式:
1、生成指定范围的数值列表,语法格式如下:
list = [Expression for var in range]
参数说明:
list:表示生成列表的名称
Expression:表达式,用于计算新列表的元素
var:循环变量
range:采用range()函数生成的range对象
例:
import random #导入random标准库 list1 =[random.randint(10,100) for i in range(10)] #定义一个空列表 print(list1)
执行结果:[60, 76, 94, 73, 85, 90, 54, 48, 15, 41]
2、根据列表生成指定需求的列表,语法如下
newlist = [Expression for var in list]
参数说明:
newlist:表示新生成列表的名称
Expression:表达式,用于计算新列表的元素
var:循环变量
list:用于生成新列表的原列表
例:
price = [1000,500,999,666,888] #新建列表 sale = [int(x*0.5) for x in price] print("原价格:",price) print("打折后:",sale)
执行结果:原价格: [1000, 500, 999, 666, 888]
打折后: [500, 250, 499, 333, 444]
3、从列表中选择符合条件的元素生成新的列表,语法如下:
newlist = [Expression for var in list if condition]
参数说明:
newlist:表示新生成列表的名称
Expression:表达式,用于计算新列表的元素
var:循环变量
list:用于生成新列表的原列表
condition:条件表达式用于指定的筛选条件:
例:
price = [1000,500,999,666,888] sale1 = [x for x in price if x > 500] #大于500的价格形成新的列表 print(sale1)
执行结果:[1000, 999, 666, 888]
python-----列表(list)下相关推荐
- flask html下拉列表,如何使用Flask和HTML从python列表创建下拉菜单
我正在尝试使用来自python脚本的信息在HTML中创建一个下拉菜单.不过,到目前为止我已经让它工作了,html下拉列表将列表中的所有4个值显示为4个选项. 当前:选项1:红色.蓝色.黑色.橙色:选项 ...
- flask html下拉列表,如何使用Flask和HTML從python列表創建下拉菜單
我試圖使用來自python腳本的信息在HTML中創建下拉菜單.到目前爲止,我已經完成了它的工作,但是,html下拉菜單將列表中的所有4個值顯示爲4個選項.如何使用Flask和HTML從python列表 ...
- insert 语句的选择列表包含的项多于插入列表中的项_如何定义和使用Python列表(Lists)
Python中最简单的数据集合是一个列表(list).列表是方括号内用逗号分隔的任何数据项列表.通常,就像使用变量一样,使用=符号为Python列表分配名称. 如果列表中包含数字,则不要在其周围使用引 ...
- python列表嵌套字典取值_Python基础语法:你不得不知的几种变量类型
(点击上方快速关注并设置为星标,一起学Python) 作者:kina_chen來源:简书 01. Python编码Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字, ...
- python列表解析的新方法
python 列表解析我感觉是python非常灵活的一个地方,一开始接触它的时候,特别是之前学过其它的语言, 你会感觉很不习惯,怎么看怎么不对劲,老是觉的哪个地方怪怪的,这就是列表解析的魔力所在. p ...
- 是否保证Python列表的元素保持按插入顺序排列?
本文翻译自:Is a Python list guaranteed to have its elements stay in the order they are inserted in? If I ...
- python基础知识资料-学习Python列表的基础知识汇总
千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天,本喵带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要 ...
- python管理技巧_8个经典的Python列表技巧,让你数据处理更简单!
列表(List)是你使用Python过程中接触最为频繁的数据结构,也是功能最为强大的几种数据结构之一.Python列表非常的万能且蕴含着许多隐藏技巧,下面我们就来探索一些常用的列表技巧. 1 列表元素 ...
- python 列表去重(数组)的几种方法_python 列表去重(数组)的几种方法
在抓取页面图片时,为避免重复抓取,将抓取的img结果(结果集是list类型的)通过集合去重.这里总结了下网上搜集到的几种方法. 一.方法1 代码如下 复制代码 ids = [1,2,3,3,4,2,3 ...
- python列表浅复制_Python列表的深复制和浅复制示例详解
一.深复制与浅复制 列表是Python中自带的一种数据结构,在使用列表时,拷贝操作不可避免,下面简单讨论一下列表的深复制(拷贝)与浅复制 首先看代码: l1 = [5, 4, 3, 2, 1] # 用 ...
最新文章
- matlab的帮助命令是英文的,4 Matlab 帮助系统
- R语言ggplot2可视化强制所有的X数值都显示在X轴标签上:x-axis labels with all x-axis values
- mysql游标结果为空
- PLSQL的截取函数
- C语言二分法在一个有序数组查找数的算法(附完整源码)
- 机器学习(六)——SVM(4)、学习理论
- PRDICQR and PRD01QR
- Lockdown Wheelie项目
- 绑定事件的几个方法总结
- RocketMQ 分布式事务
- 登录cookie html,cookie注册
- java可以使用python的库函数_java调用python方法总结
- avalon 笔记---Mr.wing
- js es6 map 与 原生对象区别
- 机器人工程毕业设计☞开题报告
- 微信小程序:音乐播放器(附源码)
- 论文专利博客写作总结
- 中国科技大学科学岛计算机系,招生信息 | 中国科学技术大学科学岛优秀大学生夏令营通知...
- 深入剖析Spring Web源码(十九) - 整理的文档和日志的索引(第一版)
- 广工大物实验报告十七——铁磁材料的磁滞回线和基本磁化曲线
热门文章
- 组态王如何连接mysql_组态王连接SQL数据库操作步骤
- #今日论文推荐#1小时学会走路,10分钟学会翻身,世界模型让新生机器狗掌握多项技能
- 【实战】聊聊幂等设计
- 设计模式简单代码之Command模式(皇帝圣旨篇)
- sql语句order by与group by
- Effective C++条款05:了解C++默默编写并调用哪些函数(Know what functions C++ silently writes and calls)
- 测绘——通过手机和smart3D创建三维模型
- window.open document.write ie6拒绝访问
- OSChina 周四乱弹 ——PM是这样学程序的
- 一名合格的管理者需要具备哪些能力?公司管理培训课程推荐