列表是最常用的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基础:列表详解相关推荐

  1. python3 打印目录下所有模块_python3基础12详解模块和包(库)|构建|使用

    本篇详解python中模块和包(库)的构建及使用. 欢迎微信随缘关注@pythonic生物人 本文您将学到什么? 1.模块 定义模块 导入模块 调用模块中函数方法1 模块名.函数名方法2 from 模 ...

  2. python怎么横着输出_对python3中, print横向输出的方法详解

    对python3中, print横向输出的方法详解 Python 2 : print打印的时候,如果结尾有逗号,打出来时候不会换行.但是在python3里面就不行了. Python3: 3.0的pri ...

  3. linux系统下安装pip3,linux下安装python3和对应的pip环境教程详解

    linux下安装python3和对应的pip环境教程详解 1.下载python3.6的安装包: 2.解压后,进入到解压目录下,执行如下命令,将python3.6进行编译,如下是将python的环境编译 ...

  4. python 匿名函数示例_扣丁学堂Python3开发之匿名函数用法示例详解

    扣丁学堂Python3开发之匿名函数用法示例详解 2018-07-26 14:01:11 1324浏览 今天扣丁学堂Python培训给大家分享关于Python3匿名函数用法,结合实例形式分析了Pyth ...

  5. Redis入门 - 数据类型:5种基础数据类型详解

    Redis所有的key(键)都是字符串.我们在谈基础数据结构时,讨论的是存储值的数据类型,主要包括常见的5种数据类型,分别是:String.List.Set.Zset.Hash Redis入门 - 数 ...

  6. Nmap扫描教程之基础扫描详解

    Nmap扫描教程之基础扫描详解 Nmap扫描基础扫描 当用户对Nmap工具了解后,即可使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具可以分别对主机.端口.版本.操作系统等实施扫描.但是,在 ...

  7. R语言可视化绘图基础知识详解

    R语言可视化绘图基础知识详解 图形参数:字体.坐标.颜色.标签等: 图像符号和线条: 文本属性: 图像尺寸及边界: 坐标轴.图例自定义等: 图像的组合: #install.packages(c(&qu ...

  8. python编程语法大全-Python编程入门——基础语法详解

    今天小编给大家带来Python编程入门--基础语法详解. 关于怎么快速学python,可以加下小编的python学习群:611+530+101,不管你是小白还是大牛,小编我都欢迎,不定期分享干货 每天 ...

  9. python编程语法-Python编程入门——基础语法详解

    今天小编给大家带来Python编程入门--基础语法详解. 一.基本概念 1.内置的变量类型: Python是有变量类型的,而且会强制检查变量类型.内置的变量类型有如下几种: #浮点 float_num ...

最新文章

  1. 吴恩达老师深度学习视频课笔记:卷积神经网络
  2. WEB文档在线预览解决方案
  3. async 队列性能测试
  4. 马走日poj java超时_简单搜索poj 2243(水
  5. Git 提交规范-Java程序员收藏必备
  6. 计算机软件中级职称 入职,计算机职调称论文.doc
  7. 自然语言处理中的语言模型与预训练技术的总结
  8. 收藏 | 超轻量目标检测模型NanoDet,比YOLO跑得快,上线两天Star量超200
  9. JVM内存模型与GC回收器
  10. @Scheduled不执行的原因
  11. android listview标题置顶,Android仿QQ左滑删除置顶ListView操作
  12. oracle 在 Linux下安装环境配置
  13. 树莓派-解决apt-get upgrade速度慢的方法[更换阿里云源]
  14. java设计模式2--工厂模式
  15. 关于语音识别技术 你了解多少
  16. 利用Python进行数据分析--数据规整化:清理、转换、合并、重塑
  17. oracle如何做定时任务,oracle实现定时任务
  18. 通过css和html构建能耗数据分析树状图
  19. go build报错,提示错误can‘t load package: package xxx is not in GOROOT (D:\Go\Go\src\xxx)
  20. http://dongxicheng.org/

热门文章

  1. OpenCV中Mat总结
  2. excel操作的几种方法
  3. c++中用new和不用new创建对象的本质区别
  4. 免师计算机与学前教育,2014届河南免师生源分布.doc
  5. python和rpa有什么关系_什么是RPA_什么是RPA_产品简介_机器人流程自动化RPA - 阿里云...
  6. 利用SAML证书登陆vCenter
  7. linux添加审计账户_Linux下利用psacct审计系统帐号连接时间, 用户操作
  8. mysql快速入门_MySQL快速入门(三)
  9. Androd开发之通过ComponentName和setComponent以及scheme打开外部应用 | 打开任意页面 | 打开指定页面
  10. python协程处理海量文件_python_实战篇_使用协程gevent模块实现多任务copyA文件夹到B文件夹...