1、列表的定义

中括号进行定义
list函数定义
使用逗号分割
列表中的元素可以是任意类型,尽管这样很少用

lists=list()
lists.append('zhangsan')
lists.append('lisi')
lists.append(34)
print(lists)#['zhangsan', 'lisi', 34]

2、列表的基本运算(操作)

+运算:列表相加,组合成新的列表

list1=['zhangsan','lisi','wanger']
list2=[2.3,4,6]
res=list1+list2
print(res)#['zhangsan', 'lisi', 'wanger', 2.3, 4, 6]

*重复运算:列表元素重复

list1=['zhangsan','lisi','wanger']
res=list1*3
print(res)#['zhangsan', 'lisi', 'wanger', 'zhangsan', 'lisi', 'wanger', 'zhangsan', 'lisi', 'wanger']
  • in:元素是否存在与列表
list1=['zhangsan','lisi','wanger']
res='lisi' in list1
print(res)#True
  • 通过索引获取、及修改元素,不能通过下标添加元素(js可以)
  • 追加元素使用append(单个元素)
list1=['zhangsan','lisi','wanger']
res=list1[-1]
print(res)#True
list1[0]='maba'
print(list1[0])#maba
list1.append('zhaoliu')
print(list1)
  • len获得列表长度
  • 列表元素的删除pop(),实际就是出栈的意思,返回数组
list1=['zhangsan','lisi','wanger']
res=list1[-1]
print(res)#True
list1[0]='maba'
print(list1[0])#maba
list1.append('zhaoliu')
print(list1)#['maba', 'lisi', 'wanger', 'zhaoliu']
list1.pop()
print(list1)#['maba', 'lisi', 'wanger']

3、列表中的切片

  • 下标切片法
    列表名[开始索引:结束索引:步进值]
list1=['zhangsan','lisi','wanger','zhaoliu','maba']
res=list1[2:]#从第三个到最后一个
print(res)#['wanger', 'zhaoliu', 'maba']
res=list1[:2]#从开始到第三个
print(res)#['zhangsan', 'lisi']res=list1[1:4]#从第2开始到第5个
print(res)#['lisi', 'wanger', 'zhaoliu']
  • 列表反转:列表名[::-1]
    需要就是从倒数第几个开始输出
list1=['zhangsan','lisi','wanger','zhaoliu','maba']
res=list1[::-1]
print(res)#['maba', 'zhaoliu', 'wanger', 'lisi', 'zhangsan']
  • 下标切片法对列表数据进行更新
    直接对切片赋值就行
list1=['zhangsan','lisi','wanger','zhaoliu','maba']
list1[2:4]='sunjiu'#如果是字符串会拆分装进去
print(list1)#['zhangsan', 'lisi', 's', 'u', 'n', 'j', 'i', 'u', 'maba']
  • 切片删除法

del list[n1:n2]

list1=['zhangsan','lisi','wanger','zhaoliu','maba']
del list1[1:3]#删除的范围
print(list1)#['zhangsan', 'zhaoliu', 'maba']

4、列表中的相关函数

  • len():检测列表长度
  • count(指定元素值):检测列表中指定元素出现的次数
list=['zhangsan','lisi','wanger','zhaoliu','maba','maba']
res=list.count('maba')
print(res)#2
  • append(指定元素):添加元素到列表尾部,更改原列表
  • insert(index,内容):从索引位置向列表插入内容
list=['zhangsan','lisi','wanger','zhaoliu','maba','maba']
list.insert(2,'mahonggui')
print(list)#['zhangsan', 'lisi', 'mahonggui', 'wanger', 'zhaoliu', 'maba', 'maba']
  • pop(索引下标)删除指定索引的元素,出栈
  • remove(指定元素内容)删除指定元素
list=['zhangsan','lisi','wanger','zhaoliu','maba','maba']
list.remove('wanger')
print(list)#['zhangsan', 'lisi', 'zhaoliu', 'maba', 'maba']
  • index(指定内容):查找指定内容在列表中的位置
  • extend(另一个列表):向另一个列表添加多个元素
list=['zhangsan','lisi','wanger','zhaoliu','maba','maba']
list.extend(['caoxueqin','luyou'])
print(list)#['zhangsan', 'lisi', 'wanger', 'zhaoliu', 'maba', 'maba', 'caoxueqin', 'luyou']
  • clear():清空所有元素
list=['zhangsan','lisi','wanger','zhaoliu','maba','maba']
list.clear()
print(list)#[]
  • reverse()反转元素
  • sort()列表排序操作
  • 或sort(reverse-True)降序排列
  • 或sort(key=自定义函数)使用自定义函数排序规则排序
list=['zhangsan','lisi','wanger','zhaoliu','maba','maba']
list.sort()
print(list)#['lisi', 'maba', 'maba', 'wanger', 'zhangsan', 'zhaoliu']
  • copy()复制当前列表,拷贝一维数组时是深拷贝,二维列表时是浅拷贝,值复制,不指向同一个对象
    copy()对一维列表最匹配,当是二维列表的时候,二维列表部分是引用,不是值拷贝
list=['zhangsan','lisi','wanger','zhaoliu','maba','maba']
list2=list.copy()
del list[2]
print(list)#['zhangsan', 'lisi', 'zhaoliu', 'maba', 'maba']
print(list2)#['zhangsan', 'lisi', 'wanger', 'zhaoliu', 'maba', 'maba']

5、浅拷贝,深拷贝

copy()是深拷贝(拷贝值,但如果涉及二维列表,则是浅拷贝,如果要进行深拷贝,则要使用copy模块的deepcopy()函数

list=['zhangsan','lisi','wanger',['zhaoliu','maba','wangjiu']]
import copy
newlist=copy.deepcopy(list)#copy模块
del list[3][1]
print(list)#['zhangsan', 'lisi', 'wanger', ['zhaoliu', 'wangjiu']]
print(newlist)#['zhangsan', 'lisi', 'wanger', ['zhaoliu', 'maba', 'wangjiu']]

6、列表推导式(list-comprehension)

使用一个运算对某个序列或可迭代对象的每个元素,来创建列表,或者通过满足某些特定条件来创建子序列。
实际就是用表达式对数据进行过滤或处理,并将结果组成一个新的列表

传统方法

varlist=[]
for item in range(1,5):varlist.append(item**2)
print(varlist)#[1, 4, 9, 16]

使用map函数和lambda完成

varlist=map(lambda x:x**2,range(1,5))
print(list(varlist))#[1, 4, 9, 16]

使用列表推导式完成
变量=[ 变量表达式运算 for 变量 in 容器(迭代器)]

varlist=[item**2 for item in range(1,5)]#先循环出迭代器的每个元素,然后再进行处理,再赋值给列表
print(list(varlist))#[1, 4, 9, 16]

7、带有判断条件的列表推导式

变量=[ 变量表达式运算 for 变量 in 容器(迭代器 ) 条件表达式]

varlist=[item**2 for item in range(1,7) if item %2==0]#从范围内取偶数乘方
print(list(varlist))#[4, 16, 36]

8、带有判断条件的多循环列表推导式

传统方法

varlist=[]
for x in range(3):for y in range(1,4):if(x!=y):varlist.append((x,y))print(varlist)#[(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 1), (2, 3)]

列表推导式方法

newlist=[(x,y) for x in range(3) for y in range(1,4) if x!=y]
print(newlist)#[(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 1), (2, 3)]

Python(IT峰)笔记06-数据类型详解:列表,列表的定义,列表的基本运算,列表中的切片,列表中的相关函数,浅拷贝,深拷贝,列表推导式相关推荐

  1. python复数类型转换_Python 复数数据类型详解(complex)[学习 Python 必备基础知识][看此一篇就够了]...

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 1 复 ...

  2. mysql 数据类型详解_MySQL笔记之数据类型详解

    字符型数据 字符型数据可以使用定长或变长的字符串来实现,其不同点在于固定长度的字符串使用空格向右填充,以保证占用同样的字节数;变长字符串不需要向右填充,并且所有字节数可变. char          ...

  3. Vue-学习笔记-06 v-if详解

    文章目录 一.Vue中的v-if 和 v-show 1.1 v-if 决定是否渲染 基本使用: 1.2 v-show 决定是否显示 1.3 v-if 和 v-show的区别 1.4 v-if 根据成绩 ...

  4. python六大数据类型详解

    python 六大数据类型详解 文章目录 python 六大数据类型详解 数据类型简介 Number(数值) String(字符串) Python字符串的45个方法详解 一.大小写转换 01.capi ...

  5. Python数据类型详解03

    原文博客地址: Python数据类型详解03 第一篇Python数据类型详解01中主要介绍了Python中的一些常用的数据类型的基础知识 第二篇Python数据类型详解02文章中, 详细介绍了数字(N ...

  6. Python中的list/tuple/dict/set数据类型详解

    Python中的list/tuple/dict/set数据类型详解 Python内部内置了一些数据类型与结构,可以方便在编程时候的使用. list List存储一系列的有序集合,并且元素内容可变(可更 ...

  7. Python 数据类型详解(字符串)

    数据类型详解-字符串 回顾字符串的定义方式 了解转义字符 字符串相关的操作 字符串格式化的方法 字符串相关函数 字符串的定义方式 单引号定义字符串 ' ' 双引号定义字符串 " " ...

  8. python 子字符串 位置_python查找子字符串位置Python变量和数据类型详解

    Python变量和数据类型 Python中数据类型 Python之print语句 Python的注释 Python中什么是变量 Python中定义字符串 Python中raw字符串与多行字符串 Pyt ...

  9. ELK学习笔记之Logstash详解

    0x00 Logstash概述 官方介绍:Logstash is an open source data collection engine with real-time pipelining cap ...

  10. 21年最新Python面试题及答案汇总详解(上)

    错过三月找工作的机会,还要错过四月的好时期吗?Python面试你做准备了吗?下面小编整理了一套2021年最新Python常见面试题目,及Python面试题目答案汇总.希望能够帮助到大家. 21年最新P ...

最新文章

  1. 【错误记录】Flutter 环境安装相关问题 ( 执行 flutter doctor 命令后续错误处理 )
  2. C++ 有符号整数和无符号整数修饰符之间的差别
  3. scala入门-05继承类(extends)的使用
  4. laravel构造器的CURD
  5. html5自动把某个层放在屏幕底部,告诉你一个将 footer 保持在底部的最好方法
  6. java api csdn_java api函数读出当前机器名以及版本号 csdn
  7. php实现关键字搜索mysql数据_PHP实现多个关键词搜索查询功能示例
  8. 8051单片机的中断发送
  9. 如何删除 EMC存储认到的鬼盘LUNZ disk,在存储上出现initiators storage group ~management的情况...
  10. SSM框架客户管理系统
  11. java手机飞信_手机飞信JAVA通用版 手机飞信2011通用版
  12. cortana 无法使用_如何在Windows 10中将Cortana与本地用户帐户一起使用
  13. 【亲测好用】磁盘管理器:Disk Xray Mac版
  14. 微信小程序 - 进阶(自定义组件、promis化、mobx、分包、自定义tabBar)
  15. 视觉检测3D相机 平面度检测
  16. 你可能想象不到,手机号码标记居然也是一门月赚十万的好生意
  17. Easy_language
  18. 使用R语言对股票数据进行时间序列分析
  19. html锁别人电脑的程序,教大家怎么把电脑里的个别软件锁住
  20. 【原创】QT 绘制饼图,曲线图,柱状图,详解。

热门文章

  1. 检测、分选、固晶 芯片缺角检测 Halcon
  2. 2022-2028全球自动电缆压接机行业调研及趋势分析报告
  3. MONODISTILL: LEARNING SPATIAL FEATURES FOR MONOCULAR 3D OBJECT DETECTION
  4. 用1个拨码开关控制所有的LED灯亮灭
  5. 开题报告:基于java房产中介预约看房网站系统 毕业设计论文开题报告模板
  6. 光纤耦合调制器市场现状及未来发展趋势
  7. excel批量生成文件夹和txt文件
  8. Java+Sql 酒店会员管理系统设计 麻烦大神帮忙看看功能结构是否合适
  9. 初学者尤克里里怎么选购?新手不妨试试这几款!
  10. 身份证问题讲解全连接神经网络