python3 从尾部读取_Python3基础:列表详解
列表是最常用的Python数据类型,作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可
1 使用[]或者list()创建列表user = []
user = list()
2 使用list()将其他类型转换成列表# 将字符串转成列表
>>> list('abcde')
['a', 'b', 'c', 'd', 'e']
# 将元组转成列表
>>> list(('a','b','c'))
['a', 'b', 'c']
3 使用[offset]获取元素或修改元素>>> users = ['a','b','c','d','e']
# 使用整数来获取某个元素
>>> users[0]
'a'
# 使用负整数来表示从尾部获取某个元素
>>> users[-1]
'e'
# 数组越界会报错
>>> users[100]
Traceback (most recent call last):
File "", line 1, in
IndexError: list index out of range
>>> users[-100]
Traceback (most recent call last):
File "", line 1, in
IndexError: list index out of range
# 修改某个元素
>>> users[0] = 'wdd'
>>> users
['wdd', 'b', 'c', 'd', 'e']
>>>
4 列表切片与提取元素
列表的切片或者提取之后仍然是一个列表
形如:list[start:end:step]>>> users
['wdd', 'b', 'c', 'd', 'e']
# 正常截取 注意这里并不会截取到users[2]
>>> users[0:2]
['wdd', 'b']
# 也可从尾部截取
>>> users[0:-2]
['wdd', 'b', 'c']
# 这样可以获取所有的元素
>>> users[:]
['wdd', 'b', 'c', 'd', 'e']
# 也可以加上步长参数
>>> users[0:4:2]
['wdd', 'c']
# 也可以通过这种方式去将列表取反
>>> users[::-1]
['e', 'd', 'c', 'b', 'wdd']
# 注意切片时,偏移量可以越界,越界之后不会报错,仍然按照界限来处理 例如开始偏移量如果小于0,那么仍然会按照0去计算。
>>> users
['wdd', 'b', 'c', 'd', 'e']
>>> users[-100:3]
['wdd', 'b', 'c']
>>> users[-100:100]
['wdd', 'b', 'c', 'd', 'e']
>>>
5 使用append()添加元素至列表尾部
形如:list.append(item)>>> users
['wdd', 'b', 'c', 'd', 'e']
>>> users.append('ddw')
>>> users
['wdd', 'b', 'c', 'd', 'e', 'ddw']
6 使用extend()或+=合并列表
形如:list1.extend(list2)
这两个方法都会直接修改原列表>>> users
['wdd', 'b', 'c', 'd', 'e', 'ddw']
>>> names
['heihei', 'haha']
>>> users.extend(names)
>>> users
['wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha']
>>> users += names
>>> users
['wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', 'haha']
7 使用insert()在指定位置插入元素
形如:list.insert(offset, item)
insert 不存在越界的问题,偏移量正负都行,越界之后会自动伸缩到界限之内,并不会报错>>> users
['wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', 'haha']
>>> users.insert(0,'xiaoxiao')
>>> users
['xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', 'haha']
>>> users.insert(-1,'-xiaoxiao')
>>> users
['xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha']
# 下面-100肯定越界了
>>> users.insert(-100,'-xiaoxiao')
>>> users
['-xiaoxiao', 'xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha']
# 下面100也是越界了
>>> users.insert(100,'-xiaoxiao')
>>> users
['-xiaoxiao', 'xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']
8 使用del删除某个元素
形如:del list[offset]
del是python的语句,不是列表的方法,del删除不存在的元素时,会提示越界>>> users
['-xiaoxiao', 'xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']
>>> del users[0]
>>> users
['xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']
>>> del users[100]
Traceback (most recent call last):
File "", line 1, in
IndexError: list assignment index out of range
>>> del users[-100]
Traceback (most recent call last):
File "", line 1, in
IndexError: list assignment index out of range
9 使用remove删除具有指定值的元素
形如:list.remove(value)>>> users
['xiaoxiao', 'wdd', 'b', 'c', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']
# 删除指定值'c'
>>> users.remove('c')
>>> users
['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'haha', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']
# 删除不存在的值会报错
>>> users.remove('alsdkfjalsdf')
Traceback (most recent call last):
File "", line 1, in
ValueError: list.remove(x): x not in list
# 如果该值存在多个,那么只能删除到第一个
>>> users.remove('haha')
>>> users
['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']
10 使用pop()方式返回列表某个元素后,并在数组里删除它
形如:list.pop(offset=-1) 偏移量默认等于-1,也就是删除最后的元素>>> users
['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha', '-xiaoxiao']
# 删除最后的元素
>>> users.pop()
'-xiaoxiao'
>>> users
['xiaoxiao', 'wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']
# 如果列表本身就是空的,那么pop时会报错
>>> user.pop(0)
Traceback (most recent call last):
File "", line 1, in
IndexError: pop from empty list
>>> users.pop(0)
'xiaoxiao'
>>> users
['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']
# 越界时也会报错
>>> users.pop(100)
Traceback (most recent call last):
File "", line 1, in
IndexError: pop index out of range
11 使用index()查询具有特定值的元素位置
形如:list.index(value)# index只会返回第一遇到该值得位置
>>> users
['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']
>>> users.index('heihei')
5
# 如果该值不存在,也会报错
>>> users.index('laksdf')
Traceback (most recent call last):
File "", line 1, in
ValueError: 'laksdf' is not in list
12 使用in判断值是否存在于列表
形如:value in list>>> users
['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']
>>> 'wdd' in users
True
13 使用count()记录列表中特定值出现的次数
形如:list.count(value)>>> users
['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']
>>> users.count('heihei')
2
>>> users.count('h')
0
14 使用join()将列表转为字符串
形如:string.join(list)>>> users
['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']
>>> ','.join(users)
'wdd,b,d,e,ddw,heihei,heihei,-xiaoxiao,haha'
>>> user
[]
>>> ','.join(user)
''
15 使用sort()重新排列列表元素
形如:list.sort()>>> users
['wdd', 'b', 'd', 'e', 'ddw', 'heihei', 'heihei', '-xiaoxiao', 'haha']
# 默认是升序排序
>>> users.sort()
>>> users
['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']
# 加入reverse=True, 可以降序排序
>>> users.sort(reverse=True)
>>> users
['wdd', 'heihei', 'heihei', 'haha', 'e', 'ddw', 'd', 'b', '-xiaoxiao']
# 通过匿名函数,传入函数进行自定义排序
>>> students
[{'name': 'wdd', 'age': 343}, {'name': 'ddw', 'age': 43}, {'name': 'jik', 'age': 90}]
>>> students.sort(key=lambda item: item['age'])
>>> students
[{'name': 'ddw', 'age': 43}, {'name': 'jik', 'age': 90}, {'name': 'wdd', 'age': 343}]
>>> students.sort(key=lambda item: item['age'], reverse=True)
>>> students
[{'name': 'wdd', 'age': 343}, {'name': 'jik', 'age': 90}, {'name': 'ddw', 'age': 43}]
>>>
16 使用reverse()将列表翻转
形如:list.reverse()>>> users
['wdd', 'heihei', 'heihei', 'haha', 'e', 'ddw', 'd', 'b', '-xiaoxiao']
>>> users.reverse()
>>> users
['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']
17 使用copy()复制列表
形如:list2 = list1.copy()
list2 = list1 这种并不是列表的复制,只是给列表起了别名。实际上还是指向同一个值。>>> users
['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']
>>> users2 = users.copy()
>>> users2
['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']
>>>
18 使用clear()清空列表
形如: list.clear()>>> users2
['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']
>>> users2.clear()
>>> users2
[]
19 使用len()获取列表长度
形如:len(list)>>> users
['-xiaoxiao', 'b', 'd', 'ddw', 'e', 'haha', 'heihei', 'heihei', 'wdd']
>>> len(users)
9
提示偏移量越界的操作有list[offset] 读取或者修改某个元素
del list[offset] 删除指定位置的元素
list.remove(value) 删除指定值的元素
list.pop(offset) 删除指定位置的元素
python3 从尾部读取_Python3基础:列表详解相关推荐
- python3 打印目录下所有模块_python3基础12详解模块和包(库)|构建|使用
本篇详解python中模块和包(库)的构建及使用. 欢迎微信随缘关注@pythonic生物人 本文您将学到什么? 1.模块 定义模块 导入模块 调用模块中函数方法1 模块名.函数名方法2 from 模 ...
- python怎么横着输出_对python3中, print横向输出的方法详解
对python3中, print横向输出的方法详解 Python 2 : print打印的时候,如果结尾有逗号,打出来时候不会换行.但是在python3里面就不行了. Python3: 3.0的pri ...
- linux系统下安装pip3,linux下安装python3和对应的pip环境教程详解
linux下安装python3和对应的pip环境教程详解 1.下载python3.6的安装包: 2.解压后,进入到解压目录下,执行如下命令,将python3.6进行编译,如下是将python的环境编译 ...
- python 匿名函数示例_扣丁学堂Python3开发之匿名函数用法示例详解
扣丁学堂Python3开发之匿名函数用法示例详解 2018-07-26 14:01:11 1324浏览 今天扣丁学堂Python培训给大家分享关于Python3匿名函数用法,结合实例形式分析了Pyth ...
- Redis入门 - 数据类型:5种基础数据类型详解
Redis所有的key(键)都是字符串.我们在谈基础数据结构时,讨论的是存储值的数据类型,主要包括常见的5种数据类型,分别是:String.List.Set.Zset.Hash Redis入门 - 数 ...
- Nmap扫描教程之基础扫描详解
Nmap扫描教程之基础扫描详解 Nmap扫描基础扫描 当用户对Nmap工具了解后,即可使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具可以分别对主机.端口.版本.操作系统等实施扫描.但是,在 ...
- R语言可视化绘图基础知识详解
R语言可视化绘图基础知识详解 图形参数:字体.坐标.颜色.标签等: 图像符号和线条: 文本属性: 图像尺寸及边界: 坐标轴.图例自定义等: 图像的组合: #install.packages(c(&qu ...
- python编程语法大全-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货 每天 ...
- python编程语法-Python编程入门——基础语法详解
今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...
最新文章
- 吴恩达老师深度学习视频课笔记:卷积神经网络
- WEB文档在线预览解决方案
- async 队列性能测试
- 马走日poj java超时_简单搜索poj 2243(水
- Git 提交规范-Java程序员收藏必备
- 计算机软件中级职称 入职,计算机职调称论文.doc
- 自然语言处理中的语言模型与预训练技术的总结
- 收藏 | 超轻量目标检测模型NanoDet,比YOLO跑得快,上线两天Star量超200
- JVM内存模型与GC回收器
- @Scheduled不执行的原因
- android listview标题置顶,Android仿QQ左滑删除置顶ListView操作
- oracle 在 Linux下安装环境配置
- 树莓派-解决apt-get upgrade速度慢的方法[更换阿里云源]
- java设计模式2--工厂模式
- 关于语音识别技术 你了解多少
- 利用Python进行数据分析--数据规整化:清理、转换、合并、重塑
- oracle如何做定时任务,oracle实现定时任务
- 通过css和html构建能耗数据分析树状图
- go build报错,提示错误can‘t load package: package xxx is not in GOROOT (D:\Go\Go\src\xxx)
- http://dongxicheng.org/
热门文章
- OpenCV中Mat总结
- excel操作的几种方法
- c++中用new和不用new创建对象的本质区别
- 免师计算机与学前教育,2014届河南免师生源分布.doc
- python和rpa有什么关系_什么是RPA_什么是RPA_产品简介_机器人流程自动化RPA - 阿里云...
- 利用SAML证书登陆vCenter
- linux添加审计账户_Linux下利用psacct审计系统帐号连接时间, 用户操作
- mysql快速入门_MySQL快速入门(三)
- Androd开发之通过ComponentName和setComponent以及scheme打开外部应用 | 打开任意页面 | 打开指定页面
- python协程处理海量文件_python_实战篇_使用协程gevent模块实现多任务copyA文件夹到B文件夹...