Python笔记·第五章—— 列表(List) 的增删改查及其他方法
一、列表的简介
列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[ ]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:li = [‘fuyong’,123,Ture,(1,2,3,’123’),[1,2,3,’小明’,],{‘name’:’fuyong’}] 。列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。
下面我们就来详细讲解一下列表的增删改查以及其他方法。
二、增加列表元素的方法
注意:与字符串的方法不同,所有对列表操作的方法均会改变原有列表的值,而不是创建一个新的列表!!!
▷ append()方法:
此方法是用来在列表的结尾处追加元素,例如:
name_list = ['赵','钱','孙','李','周',]
name_list.append('吴')
print(name_list)
# 结果是 ['赵', '钱', '孙', '李', '周', '吴']
▷insert()方法:
此方法是用来在列表的指定索引位置插入内容,后面参数分别传递索引值、插入元素
name_list = ['赵','钱','孙','李','周',]
name_list.insert(,'付')
print(name_list)
# 结果为:['赵', '钱', '付', '孙', '李', '周']
▷extend()方法:
此方法是用来拓展列表,给他们追加一些元素,后面的参数可以是字符串,列表以及任何可迭代对象,python解释器会将此对象一一拆分然后追加至列表,例如:
name_list = ['赵','钱','孙','李','周',]
name_list.extend('吴')
name_list.extend('郑王')
name_list.extend("fu")
name_list.extend(['a','b','c'])
name_list.extend(range())
print(name_list)
#结果为:['赵', '钱', '孙', '李', '周', '吴', '郑', '王', 'f', 'u', 'a', 'b', 'c', 0, 1, 2]
三、删除列表元素的方法
▷pop()方法:
此方法是用来删除列表中的一个指定索引位置所对应的值,然后返回被删除的对象,参数为索引值,默认删除列表种最后一个元素,如下:
name_list = ['赵','钱','孙','李','周',]
name_list.pop()
name_list.pop()
name_print(list)
结果为['赵', '钱', '李']
▷remove()方法:
此方法是用来删除列表中一个指定元素,参数就是指定元素(如果找不到则会报错),如下:
name_list = ['赵','钱','孙','李','周',]
name_list.remove('孙')
print(name_list)
# 结果为:['赵', '钱', '李', '周']
#注意:移除之前得确保列表中有指定的值,否则会报错
▷clear()方法:
此方法是用来清空列表中所有的值(原有的列表就变成一个空列表了),如:
name_list = ['赵','钱','孙','李','周',]
name_list.clear()
print(name_list)
# 结果为 []
▷ del 方法:
此方法用来删除整个列表(删除之后此列表就不存在了)
name_list = ['赵','钱','孙','李','周',]
del name_list
print(name_list)
# 报错:NameError: name 'name_list' is not defined
四、修改列表元素的方法
修改元素的方法用索引以及切片的方法,如:
▷ 索引:
list_name[0] = '修改后的值'
▷ 切片:
list_name[0:3] = [a,b,c]
注意:后面需要修改的值的总数可以不与切片的长度相对应,比如说[0:3]这个切片长度为3,后面可以传一个有2个或者4个元素的列表,此时,只是将切片所对应的值剔除,然后将后面列表依次插入
后面也可以赋值一个字符串,此时,只是将切片所对应的值剔除,然后将后面字符串拆开然后依次插入
list_name[0:3] = 'fuyong'
name_list = ['赵','钱','孙','李','周',]
name_list[2]= 'sun'
print(name_list)
#结果为:['赵', '钱', 'sun', '李', '周'] name_list[2]= name_list[2].title()
print(name_list)
# 结果为:['赵', '钱', 'Sun', '李', '周'] name_list[0:2] = ['zhao','qian']
print(name_list)
#结果为:['zhao', 'qian', 'Sun', '李', '周'] name_list[0:2] = ['zhao','qian','zheng']
print(name_list)
#结果为:['zhao', 'qian', 'zheng', 'Sun', '李', '周'] name_list[0:2] = ['zhao']
print(name_list)
#结果为:['zhao', 'zheng', 'Sun', '李', '周'] name_list[0:3] = 'fuyong'
print(name_list)
#结果为:['f', 'u', 'y', 'o', 'n', 'g', '李', '周']
五、查询列表元素的方法
查询元素的方法用索引以及切片的方法,如:
▷ 索引:
list_name[0]
▷ 切片:
list_name[0:3]
list_name[0:3:2]
name_list = ['赵','钱','孙','李','周',]
print(name_list[]) # 赵
print(name_list[]) # 孙 print(name_list[:]) # ['赵', '钱']
print(name_list[:]) # ['钱', '孙', '李', '周'] print(name_list[::]) # ['赵', '孙']
print(name_list[::]) # ['赵', '孙'] print(name_list[::-]) #['周', '李', '孙', '钱']
print(name_list[-::-]) #['李', '孙', '钱']
另外,如果需要查询列表中所有的元素,可以用for循环来实现,如:
name_list = ['赵','钱','孙','李','周',]
for name in name_list:
print(name) '''
输出结果如下:
赵
钱
孙
李
周
'''
六、列表的其他方法
▷ len(list)方法:
此方法可以用来计算列表的长度,如下:
name_list = ['赵','钱','孙','李','周',]
print(len(name_list))
#输出结果为5
▷count()方法:
此方法用来计算列表中一个元素出现的次数,如下:
name_list = ['赵','钱','孙','李','周','赵']
print(name_list.count('赵'))
# 输出结果为2
▷sort()方法:
次方法是对列表进行排序(列表里的元素要为数字类型),默认是正序,可以指定倒序(reverse = True)
num_list = [,,,,,,]
num_list.sort() #默认为正序排列
print(num_list)
#输出结果为:[, , , , , , ] num_list.sort(reverse=True) #指定reverse为True 则为倒序
print(num_list)
#输出结果为[, , , , , , ]
▷reverse():
此方法是将列表里所有元素进行翻转,注意,不是排序,是将所有元素倒过来 ,如:
name_list = ['赵','钱','孙','李','周']
name_list.reverse()
print(name_list)
#结果为:['周', '李', '孙', '钱', '赵']
▷join()方法:
此方法用法与字符串的join方法一样,就是将列表里的元素用指定字符连接起来,字符可以是空格,可以是空字符,可以是下划线以及任意字符,如下:
name_list = ['赵','钱','孙','李','周']
print('*'.join(name_list)) # 结果:赵*钱*孙*李*周
print(' '.join(name_list)) # 结果:赵 钱 孙 李 周
print(''.join(name_list)) # 结果:赵钱孙李周
print('__'.join(name_list)) # 结果:赵__钱__孙__李__周
注:可以利用这种方法将一个列表转为字符串格式
七、列表的嵌套
上面说过,列表里可以放一切元素,所以,当然也可以嵌套列表:
如果需要对列表里的列表进行增删改查,只需先索引到里面的列表,然后再进行操作即可,如下:
name_list = ['赵','钱','孙',['付','傅','符'],'李','周','赵'] print(name_list[3][1]) # 傅
print(name_list[3][0:2]) #['付', '傅'] name_list[3][1]= 'fu'
print(name_list)
# 结果为:['赵', '钱', '孙', ['付', 'fu', '符'], '李', '周', '赵'] name_list[3].pop(1)
print(name_list)
#结果为['赵', '钱', '孙', ['付', '符'], '李', '周', '赵'] name_list[3].remove('符')
print(name_list)
#结果为:['赵', '钱', '孙', ['付'], '李', '周', '赵']
强调:与字符串的方法不同,所有对列表操作的方法均会改变原有列表的值,而不是创建一个新的列表!!!
Python笔记·第五章—— 列表(List) 的增删改查及其他方法的更多相关文章
- Python笔记·第六章——字典 (dict) 的增删改查及其他方法
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据.python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可 ...
- Python笔记·第六章——集合 (set) 的增删改查及 copy()方法
简介: 集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的.以下是集合最重要的两点: 1.去重,把一个列表变成集合,就自动去重了. ...
- 列表(List) 的增删改查及其他方法
一.列表的简介 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[ ]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:li = ...
- Mysql学习笔记(三)对表数据的增删改查。
正文内容. 这一部分是最简单的,也是最麻烦的.简单是因为其实只包括增删该插四个部分.大体上看,增加数据.删除数据.修改数据.查询数据都不麻烦啊,我们日常都是常用的.这个谁不会呢?以前在培训机构学mys ...
- 列表(索引切片 增删改查 嵌套) range 元组的初识
li = ["alex", "WuSir", "ritian", "barry", "wenzhou" ...
- python 全栈开发,Day124(MongoDB初识,增删改查操作,数据类型,$关键字以及$修改器,"$"的奇妙用法,Array Object 的特殊操作,选取跳过排序,客户端操作)
一.MongoDB初识 什么是MongoDB MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介 ...
- python 调用zabbix api接口实现主机的增删改查
python程序调用zabbix系统的api接口实现对zabbix_server端主机的增删改查,使用相关功能时候,需要打开脚本中的相关函数. 函数说明: zabbixtools() 调用zabbi ...
- springboot(十五):springboot+jpa+thymeleaf增删改查示例
这篇文章介绍如何使用jpa和thymeleaf做一个增删改查的示例. 先和大家聊聊我为什么喜欢写这种脚手架的项目,在我学习一门新技术的时候,总是想快速的搭建起一个demo来试试它的效果,越简单越容易上 ...
- spring boot(十五)spring boot+thymeleaf+jpa增删改查示例
快速上手 配置文件 pom包配置 pom包里面添加jpa和thymeleaf的相关包引用 <dependency> <groupId>org.springframework.b ...
随机推荐
- C# 中操作API
作为初学者来说,在C#中使用API确是一件令人头疼的问题.在使用API之间你必须知道如何在C#中使用结构.类型转换.安全/不安全代码,可控/不可控代码等许多知识. 一切从简单开始,复杂的大家一时不能接 ...
- C# 链接MySql数据库
C# 链接MySql数据库只得注意的几点: 1.C#链接MySql数据库要在网上下载一个mysql-connector-net-6.0.4-noinstall.rar 这里面放的都是一堆dll .将 ...
- 新的开始,hello world!
开始使用博客一年多来,在各位大神的博客上找了很多学习需要的资料,受益匪浅.一直来自己也想过开始写自己的博客,但是一直没有开始.一来是懒,懒的整理,懒的打字排版,二来是那段时间加入实验室,自我感觉一直有 ...
- Fis3迁移至Webpack实战
Webpack从2015年9月第一个版本横空初始至今已逾2载.它的出现,颠覆了一大批主流构建如Ant.Grunt和Gulp等等.腾讯NOW直播IVWEB团队之前一直采用Fis构建,本篇文章主要介绍从F ...
- vimgdb安装
vimgdb install ************** a) You need: vim-7.3.tar.bz2 http://www.vim.org/sources.php vimgdb- (t ...
- ANTS Performance Profiler 8:支持对Web请求、异步代码和WinRT的性能剖析
下载与激活:http://download.csdn.net/detail/lone112/6734291 离线激活 位于英国的Red Gate Software有限公司最近发布了ANTS Per ...
- JAVA构造函数简析
构造函数是java新建对象的一种手段 构造函数可以重载 如果一个类中有多个域,那么就可能需要多个构造函数.这时候,使用重载就可以了 构造函数中this和super的使用 this:(1)this用于本 ...
- PHP Xdebug安装及配置
1.首先在官方网站下载dll文件; Xdebug官方网站 2.将php_xdebug.dll文件放入php/ext文件夹下; 3.编辑php.ini,在文件最后加入如下代码: ; Xdebug zen ...
- Golang源码探索(三) GC的实现原理
Golang从1.5开始引入了三色GC, 经过多次改进, 当前的1.9版本的GC停顿时间已经可以做到极短. 停顿时间的减少意味着"最大响应时间"的缩短, 这也让go更适合编写网络服 ...
- 小随笔:利用Shader给斯坦福兔子长毛和实现雪地效果
0x00 前言 发现最近没有了写长篇大论的激情,可能是到了冬天了吧.所以这篇小文只是简单介绍下如何在Unity中利用shader很简单的实现雪地效果以及毛皮效果,当然虽然标题写在了一起,但其实这是俩事 ...