python的list()列表数据类型的方法详解
一、列表
列表的特征是中括号括起来的,逗号分隔每个元素,列表中的元素可以是数字或者字符串、列表、布尔值......等等所有类型都能放到列表里面,列表里面可以嵌套列表,可以无限嵌套
字符串的特征是双引号括起来的
列表是有序的,是可以被修改的
S.append S这个对象调用了list类里面提供的append方法,list中有很多方法,str里面也有很多方法
li = [1,2,3,4,66,77] 通过list类创建的对象,这个对象叫li print (li)C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py[1, 2, 3, 4, 66, 77]
如下列表总共有6个元素,不管多少个嵌套的列表,在列表中的列表都算一个元素
li = [1, 2, "北约", 'beiye', ['ee',[1, 3, 5], 90], True] print(li)C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py[1, 2, '北约', 'beiye', ['ee', [1, 3, 5], 90], True]
1.列表通过索引(下标)的方式取值,0代表第一个,1代表第二个,2代表第三个
li = [1, 2, "北约", 'beiye', ['ee',[1, 3, 5], 90], True] print(li[0])C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py1
2.列表通过切片的方式取值(中间用:分割),切片的结果也是列表
li[0:5] 表示大于等于0,小于5这个范围(不包括第五个索引位置)
li = [1, 2, "北约", 'beiye', ['ee',[1, 3, 5], 90], True] print(li[0:5])C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py[1, 2, '北约', 'beiye', ['ee', [1, 3, 5], 90]]
3.取值范围是从开头取到倒数第二个值
li = [1, 2, "北约", 'beiye', ['ee',[1, 3, 5], 90], True] print(li[0:-1])C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py[1, 2, '北约', 'beiye', ['ee', [1, 3, 5], 90]]
4.把全部元素都取出来
li = [1, 2, "北约", 'beiye', ['ee',[1, 3, 5], 90], True] print(li[:])C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py[1, 2, '北约', 'beiye', ['ee', [1, 3, 5], 90], True]
经过测试发现 列表的索引和切片跟字符串str的使用方法一模一样
5.用for循环把列表里面的值都取出来
li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] for n in li:print(n)C:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py12北约beiye['ee', [1, 3, 5], 90]True
6.用while循环把列表里面的值都取出来
li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] while True:print(li)breakC:\python35\python3.exe D:/pyproject/day11数据类型的方法/str-way.py[1, 2, '北约', 'beiye', ['ee', [1, 3, 5], 90], True]
7.链表的概念
字符串创建之后是不可以修改的,但是列表这个创建之后就可以被修改,看下图
方框里面表示是内存的地址,mi这个字符串要想把i改成ai的话,在原来的基础上是修改不了,只能新建一个,因为字符串在内存中是挨着的,列表就不一样了,列表在内存中不是挨着的,但是每个元素在内存中都有一个链表,链表就是红圈内的一个地址,就是因为有它所以系统知道下一个元素所在的位置,如果我新加一个元素的话,只需要修改下对应的链表就可以了,所以列表是创建好之后是可以修改的
8.既然能修改,我们就来修改下列表中的元素
通过索引的方式来修改
li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] li[1] = 120 print (li)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py[1, 120, '北约', 'beiye', ['ee', [1, 3, 5], 90], True]
把元素改成一个列表试试看
li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] li[1] = [11,22,33] print (li)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py[1, [11, 22, 33], '北约', 'beiye', ['ee', [1, 3, 5], 90], True]
通过切片的方式修改列表中的元素
li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] li[1:3] = [20, 30] print(li)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py[1, 20, 30, 'beiye', ['ee', [1, 3, 5], 90], True]
9.del 加上列表的元素的索引的位置 就可以删除元素了,这是删除元素的第一种方式
li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] del li[1] print (li)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py[1, '北约', 'beiye', ['ee', [1, 3, 5], 90], True]
通过切片的方式删除指定的范围内的元素,这是删除元素的第二种方法
li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] del li[2:5] print(li)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py[1, 2, True]
10.通过in操作 判断字符串或者是数字是否在列表元素里面,在里面则为True,不在里面就为假
li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] v = 2 in li print(v)C:\python35\python3.exe D:/pyproject/day12列表/li-way.pyTrue
li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] v = 200 in li print(v)C:\python35\python3.exe D:/pyproject/day12列表/li-way.pyFalse
11.如何取列表元素里面的嵌套的列表中的元素,最终取到5这个元素
先取出列表中的列表
li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] S = li[4] print (S)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py['ee', [1, 3, 5], 90]
取到列表之后在继续往下面取,看上面的结果,5在这个列表中的第一个元素里面,ee为第第0个元素,所以我们下次取就是
li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] S = li[4][1] print (S)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py[1, 3, 5]
现在取到这里了,只剩下一个列表了,5这个元素是第二个元素,所以连接起来一起取就是
li = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] S = li[4][1][2] print (S)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py5
12.把字符串转换成列表应该怎么转换,各种相互转换
str 字符串
int 数字
list 列表
我们之前把数字转换成字符串是这样写 S = str(a) a是数字,S是转换成的结果
我们之前把字符串换成数字是这样写 S = int(a) a是字符串,S是转换成的结果
把字符串换成列表就是 S = list(a) a是字符串,S是转换成的结果
a = "gouguoqi" S = list(a) print (S)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py['g', 'o', 'u', 'g', 'u', 'o', 'q', 'i']
也可以这样写
S = list("gouguoqi") print(S)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py['g', 'o', 'u', 'g', 'u', 'o', 'q', 'i']
如果a是一个数字,就不能转换成列表了,因为数字也不能被for循环
a = 123 S= list(a) print (STypeError: 'int' object is not iterabl 数字对象不是可迭代的
a = 123 for n in a:print (n)TypeError: 'int' object is not iterabl 数字对象不是可迭代的
13.把列表转换成字符串该怎么转换
S = [1, 2, "北约", "beiye", ['ee', [1, 3, 5], 90], True] a = str(S) print (type(a),a)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py<class 'str'> [1, 2, '北约', 'beiye', ['ee', [1, 3, 5], 90], True]
虽然现在是字符串的类型了。但是这个结果不是我们想要,我们是想要这些字符串拼接起来
只能自己写个for循环了
(1)第一种方法,自己写for循环,一个一个的循环,因为元素中既有数字,又有字母,所以得定义一个空,然后循环的时候转换成str类型,才能进行相加,一个一个的循环,最 后把a打印出来
S = [1, 2, "北约", "beiye", "gouguoqi", True] a = "" for n in S:b = str(n)a = a + b a+=b print (a)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py12北约beiyegouguoqiTrue
(2)第二种方法,前提是列表元素里面的元素都是字符串,可以用join的方法
S = [ "北约", "beiye", "gouguoqi"] v = "".join(S) print (v)C:\python35\python3.exe D:/pyproject/day12列表/li-way.py北约beiyegouguoqi
二、list的方法
(list是一个list类,li是list类的一个对象) li = [111,22,33,,44,55,66]
1. append(self, p_object) 英文意思就是 追加
p_object这个我们称之为 参数 (self可以忽略)
list类的append方法,得传一个参数才可以使用
这个方法的的作用就是在列表的末尾追加一个元素
为什么不能像字符串那样把结果赋值为一个新的变量呢,因为之前不是说过了
字符串是不可以被修改的,只能赋值给一个新的变量,而列表是可以被修改的,所以可以直接进行修改,不用赋值到新的变量
S = ["北约", "beiye", "gouguoqi"] v = S.append("miaoye") print(v) print(S)C:\python35\python3.exe D:/pyproject/day12列表/list-way.pyNone['北约', 'beiye', 'gouguoqi', 'miaoye']
也可以追加多次,也可以追加数字,可以追加字符串,可以追加列表
S = ["beiye", "gouguoqi"] S.append("miaoye") S.append(66) S.append([11,22,33]) print(S)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py['beiye', 'gouguoqi', 'miaoye', 66, [11, 22, 33]]
2. clear(self)
L.clear() -> None -- remove all items from L
把列表元素清空
L = ["beiye", "gouguoqi"] L.clear() print (L)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py[]
3. copy(self) 拷贝,浅拷贝
L.copy() -> list -- a shallow copy of L shallow [ˈʃæləʊ] 浅
拷贝一个一模一样的列表出来
L = ["beiye", "gouguoqi"] a = L.copy() print (L) print (a)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py['beiye', 'gouguoqi']['beiye', 'gouguoqi']
4. count(self, value) 计数
计算一个指定的元素在列表里面出现了几次
L.count(value) -> integer -- return number of occurrences of value
计算'66'这个字符串在列表元素中出现了几次
L = ["11","22","33","222",22,22,22] v = L.count('66') print (v)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py0
计算'22'这个字符串在列表元素里面出现了几次
L = ["11","22","33","222",22,22,22] v = L.count('22') print (v)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py1
计算22这个数字在列表元素里面出现了几次
L = ["11","22","33","222",22,22,22] v = L.count(22) print (v)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py3
5. extend(self, iterable) 扩展
iterable 可迭代的,就是这个extend这方法的参数必须是可以迭代的才行(数字就不能迭代)
目前知道的 字符串可以迭代 列表可以迭代,元组也能迭代
L.extend(iterable) -> None -- extend list by appending elements from the iterable
把我们的的参数,在python内部通过for循环的方式,增加到原来的列表的末尾,作为n个新的元素增加到原来的列表里面,参数必须是可迭代的
而append则是把我们的参数当成是一个整体放到列表的末尾
L = ["11","22","33"] L.extend(["44","55","66"]) 相当于for i in ["44","55","66"] L.append((i)) print (L)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py['11', '22', '33', '44', '55', '66']
append追加的是一个整体
L = ["11","22","33"] L.append(["44","55","66"]) print (L)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py['11', '22', '33', ['44', '55', '66']]
如果extend的参数是一个字符串呢,我们看一下
L = ["11","22","33"] L.extend("woai") 相当于for i in "woai" L.append((i)) print (L)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py['11', '22', '33', 'w', 'o', 'a', 'i']
如果extend的参数是一个元组呢,我们在看一下(黄色部分就是一个元组)
L = [11,22,"gouguoqi","aa"] L.extend(("55",66,)) print (L)C:\python35\python3.exe D:/pyproject/day12列表/tuple.py[11, 22, 'gouguoqi', 'aa', '55', 66]
因为数字不是可迭代的,所以不行
L = ["11","22","33"] L.extend(123456) print (LTypeError: 'int' object is not iterable
6. index(self, value, start=None, stop=None)
L.index(value, [start, [stop]]) -> integer -- return first index of value.
Raises ValueError if the value is not present
寻找指定的元素在列表的索引(下标)位置,找到第一个之后就不找了,可以指定寻找范围,如果找不到程序就报错了,跟字符串中的index方法类似,但是字符串中有find方法,找不到结果为-1,不知道列表为啥没有find方法
L = ["11","55","22","33","55","gouguoqi"] v = L.index("55") print (v)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py1L = ["11","55","22","33","55","gouguoqi"] v = L.index("555") print (v)ValueError: '555' is not in list
7. insert(self, index, p_object)
L.insert(index, object) -- insert object before index index 索引,下标
必须指定2个参数 一个是index 一个是 object
在指定的索引之前插入你指定的参数作为列表的元素
L = ["11","55","gouguoqi"] L.insert(2,"heihei") print (L)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py['11', '55', 'heihei', 'gouguoqi']
8. pop(self, index=None) 这是删除元素的第三种方法,前面2种是del 索引 del li[1]
del 切片 del li[2:5]
L.pop([index]) -> item -- remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
删除指定索引(下标)位置的元素,不加参数的话,默认删除最后一个元素
删除索引位置为1的元素
L = ["11","55","gouguoqi","22",66] L.pop(1) print (L)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py['11', 'gouguoqi', '22', 66]
删除倒数第二个元素
L = ["11","55","gouguoqi","22",66] L.pop(-2) print (L)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py['11', '55', 'gouguoqi', 66]
不加参数,默认是删除最后一个元素
L = ["11","55","gouguoqi","22",66] L.pop() print (L)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py['11', '55', 'gouguoqi', '22']
还能获取删除的值
L = ["11","55","gouguoqi","22",66] v = L.pop(2) print (v)C:\python35\python3.exe D:/pyproject/day12列表/list-way.pygouguoqi
9. remove(self, value) 这是删除元素的第四种方法,前面3种方法
del 索引 del li[1]
del 切片 del li[2:5]
pop方法
删除指定的一个元素,删除第一个之后,就不再继续往后找了
L.remove(value) -> None -- remove first occurrence of value.
Raises ValueError if the value is not present.
L = ["11", "55", "gouguoqi", "55", "22", 66] L.remove("55") print(L)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py['11', 'gouguoqi', '55', '22', 66]
10、reverse(self) [rɪˈvɜ:s] 颠倒,反转
把列表的元素重新进行倒序排列
L = [1,2,3,4,5,6,7,8] L.reverse() print (L)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py[8, 7, 6, 5, 4, 3, 2, 1]
11. sort(self, key=None, reverse=False) 排序
不指定参数默认是升序排列
默认升序排列
L = ["www","taobao","china","abc"] L.sort() print(L)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py['abc', 'china', 'taobao', 'www']
降序排列
L = ["www","taobao","china","abc"] L.sort(reverse=True) print(L)C:\python35\python3.exe D:/pyproject/day12列表/list-way.py['www', 'taobao', 'china', 'abc']
12.列表里面的in操作,判断元素是否在列表里面
L = [11,22,33,55,66] v = 33 in L print (v)C:\python35\python3.exe D:/pyproject/day12列表/dict-way.pyTrue
转载于:https://www.cnblogs.com/gouguoqilinux/p/9114512.html
python的list()列表数据类型的方法详解相关推荐
- Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)
Python 在子类中调用父类方法详解(单继承.多层继承.多重继承) by:授客 QQ:1033553122 测试环境: win7 64位 Python版本:Python 3.3.5 代码实践 ...
- Python精讲:在Python中遍历字典的三大方法详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中遍历字典的三大方法详解>.本知识点主要内容有:使用字典对象的items()方法可以遍历字典的项和字典的&qu ...
- python移动平均线绘图_对python pandas 画移动平均线的方法详解
数据文件 66001_.txt 内容格式: date,jz0,jz1,jz2,jz3,jz4,jz5 2012-12-28,0.9326,0.8835,1.0289,1.0027,1.1067,1.0 ...
- python中验证码连通域分割的方法详解
python中验证码连通域分割的方法详解 这篇文章主要给大家介绍了关于python中验证码连通域分割的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需 ...
- python截图黑屏_对Python获取屏幕截图的4种方法详解
Python获取电脑截图有多种方式,具体如下: PIL中的ImageGrab模块 windows API PyQt pyautogui PIL中的ImageGrab模块 import time imp ...
- python list遍历删除,对python list 遍历删除的正确方法详解
在遍历list的时候,删除符合条件的数据,可是总是报异常,代码如下: num_list = [1, 2, 3, 4, 5] print(num_list) for i in range(len(num ...
- python fileinput_python文件处理fileinput使用方法详解
这篇文章主要介绍了python文件处理fileinput使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.介绍 fileinput模块 ...
- python定时任务crontab_【Python】Linux crontab定时任务配置方法(详解)
CRONTAB概念/介绍 crontab命令用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行. cron 系统调度 ...
- Chapter Four : Python 序列之列表、元组操作详解合集
目录 一.列表 1. 列表基本操作:定义列表.删除列表.访问列表.遍历列表 2. 列表常用方法及操作详解 2.1 添加元素:append().extend().insert().+ 运算符.*运算符 ...
最新文章
- 使用深度学习和树搜索进行从零开始的既快又慢的学习
- OFDM专题之子载波间干扰问题(二)
- 每日一皮:都 0202 年了,我怎么可能被骗呢?
- shell语法简单介绍
- [概述] SAP增强基本含义及分类
- 从零学React Native之07View
- 推荐 10 个你没见过的 VsCode 的高效开源神器,YYDS
- 使用DBUA单一实例如何升级至Oracle数据库12c
- Error:Execution failed for task ':dexDebug'
- U盘拷贝文件很慢?稍微改变一下使用方式,传输速度就快了6倍
- shell编程题(一)
- 20155320《网络对抗》Exp4 恶意代码分析
- ABP文档翻译--值对象
- KernelShark Documentation
- Java自动化测试框架-01 - TestNG之入门篇 - (详细教程)
- 鼠标浮动到表格的某行 背景颜色变化[mouseover mouseout 以及mouseenter mouseleave]
- [转载] 机器学习模型的保存和调用
- python显示运行时间_python程序运行进程、使用时间、剩余时间显示功能的实现代码...
- Jmeter如何远程监控服务器
- javaweb项目图
热门文章
- rocketmq 顺序消费_RocketMQ核心概念扫盲
- python3 安装PIL
- oracle监听怎么关闭,Oracle数据库启动监听、关闭
- python open函数encoding_关于python内open函数encoding编码问题
- oracle执行runstats,Oracle编程艺术--配置环境:runstats脚本
- 如何理解java反射_如何理解java反射?
- oracle对象类型_如何创建Oracle类型对象
- java gzip压缩_Java GZIP示例–压缩和解压缩文件
- 在pcduino开发板上写驱动控制板载LED的闪烁
- 开课吧前端:全栈工程师的职业目的方向是什么呢?