06.Python开发基础(数据类型之列表)
一、列表数据类型的特性
01:列表是可修改的数据类型 02:列表允许有重复的元素 03:列表中的元素是有序的 04:列表中的元素是有相应的下标 05:列表中的元素可进行切片操作
二、列表的几种定义方式
# 定义方式一 >>> name1 = ["chenliang","lili","lanlan","binbin"] >>> name1 ['chenliang', 'lili', 'lanlan', 'binbin'] # 定义方式二 >>> name2 = list(["chenliang","lili","lanlan","binbin"]) >>> name2 ['chenliang', 'lili', 'lanlan', 'binbin']
三、列表中元素对应的下标
names = ["chenliang","lanlan","lili","xiaxia"] >>> name ['chenliang', 'lili', 'lanlan', 'binbin'] >>> >>> names[0] 'chenliang' >>> names[1] 'lanlan' >>> names[2] 'lili' >>> names[3] 'xiaxia' >>> >>> names[-1] 'xiaxia' >>> names[-2] 'lili' >>> names[-3] 'lanlan' >>> names[-4] 'chenliang'
四、列表中元素的增删改查
PS:这些操作会真的的更改列表中的相关元素的哈
## 相关操作的总结如下
列表元素插入操作:列表名.insert(要插入的位置(下标),"插入的元素") # 没有相应的下标,则会报错
列表元素追加操作:列表名.append("插入的元素") # 追加后,不会返回任何值
列表元素修改操作:列表名[被修改元素的下标] = "修改成啥样" # 没有相应的下标,则会报错
列表元素存在判断:"元素" in 列表名 # 返回True或False
列表元素下标查看:列表名.index("元素") # 若元素存在,则返回第一个元素的下标,若元素不存在则报错
列表元素删除操作:
第一种方法:del(列表名[元素下标]) # 若没有相应的下标,则会报错,删除时没有返回值
第二种方法:列表名.pop(元素下标) # 若没有相应的下标,则会报错,删除时返回相应元素
第三种方法:列表名.pop() # 删除列表中的最后一个元素,若是空列表则报错
第四种方法:列表名.remove("元素") # 移除列表中的相应元素,若元素不存在时会报错,删除时没有返回值
第五种方法:列表名.clear() # 清空列表中的所有元素,删除时没有返回值
##相关操作的示例如下
#################### 列表元素的增加(插入任意位置)############################
>>> name # 查看name列表中有哪些元素
['chenliang', 'lili', 'lanlan', 'binbin']
>>>
>>> name.insert(1,"陈亮") # 将"陈亮"插入到name列表中的下标为1的位置
>>> name
['chenliang', '陈亮', 'lili', 'lanlan', 'binbin']
#################### 列表元素的增加(追加到最后) ##############################
>>> name # 查看name列表中有哪些元素
['chenliang', '陈亮', 'lili', 'lanlan', 'binbin']
>>>
>>> name.append("亮亮")) # 追加"亮亮"元素到name列表的最后
>>> name
['chenliang', '陈亮', 'lili', 'lanlan', 'binbin', '亮亮']
#################### 列表元素的修改 ##########################################
>>> name.count("lanlan") # 统计"lanlan"元素在name列表中有多少个
1
>>> name.index("lanlan") # 查看"lanlan"元素在name列表中的对应下标
3
>>> name[3] = "lili" # 将下标为3的lanlan元素修改成lili
>>> name # 查看name列表中有哪些元素
['chenliang', '陈亮', 'lili', 'lili', 'binbin', '亮亮']
#################### 判断元素是否在列表中 #####################################
>>> name # 查看name列表中有哪些元素
['chenliang', '陈亮', 'lili', 'lili', 'binbin', '亮亮']
>>>
>>> "lili" in name # 判断lili元素是否在name列表中存在
True
>>>
>>> "binbin" in name # 判断binbin元素是否在name列表中存在
True
#################### 查看元素在列表中对应的下标 ##############################
>>> name # 查看name列表中有哪些元素
['chenliang', '陈亮', 'lili', 'lili', 'binbin', '亮亮']
>>>
>>> name.count("lili") # 统计lili元素在name列表中的个数
2
>>> name.index("lili") # 查看name列表中第一个lili元素的对应下标
2
>>> name[2]
'lili'
PS:若列表中存在多个相同的元素,那么index()只能找出第一个(最左边)的元素对应的下标
#################### 列表元素的删除 ############################################
>>> name # 查看name列表中有哪些元素
['chenliang', '陈亮', 'lili', 'lanlan', 'binbin', '亮亮']
>>>
>>> del(name[name.index("lili")]) # 删除name列表中第一个lili元素
>>> name
['chenliang', '陈亮', 'lili', 'binbin', '亮亮']
>>>
>>> name.pop() # 删除name列表中的第后一个元素
'亮亮'
>>> name
['chenliang', '陈亮', 'lili', 'binbin']
>>>
>>> name.pop(name.index("lili")) # 删除name列表中的lili元素
'lili'
>>> name
['chenliang', '陈亮', 'binbin']
>>>
>>> name.remove("binbin") # 移除name列表中的binbin元素
>>> name
['chenliang', '陈亮']
>>>
>>> name.clear() # 清除name列表中的所有元素
>>> name
[]
五、列表的嵌套、合并、反转
PS:这些操作都是会更改列表的具体元素的哈
## 相关操作的总结如下所示
列表嵌套:列表名.insert(下标,"插入的新列表") 列表合并:列表名1.extend(列表名2) # 是将列表名2中的元素合并到列表名1中 列表反转:列表名.reverse() # 将列表中的元素进行反转(前队变后队)
## 相关操作的示例如下所示:
## 列表的嵌套 >>> name = ["cheliang","binbin"] >>> >>> name.insert(1,["chen","liang"]) >>> name ['chenliang', ['chen', 'liang'], 'binbin'] ## 列表的合并 >>> name = ["chenliang","llili"] >>> name ['chenliang', 'llili'] >>> >>> name1 = ["lanlan","yinyin"] >>> name1 ['lanlan', 'yinyin'] >>> >>> name.extend(name1) >>> name ['chenliang', 'llili', 'lanlan', 'yinyin'] >>> name1 ['lanlan', 'yinyin'] ## 列表的反转 >>> name ['chenliang', 'llili', 'lanlan', 'yinyin'] >>> >>> name.reverse() >>> name ['yinyin', 'lanlan', 'llili', 'chenliang']
六、列表中元素的切片操作
PS:列表的切片没有真的改变列表中相关元素哈,只是通过切片后在屏幕上显示或者通过切片后赋值给其它变量
##################### 从列表最左边的元素开始 ########################################### ##################### 要么取开头、要么取中间、要么从某个字符取到最后)################## ## 取列表中的前N个元素(取列表中的的第1个元素到第5个元素) >>> name = ["chenliang","lili","lanlan","binbin","yinyin","xinxin","zhuer"] >>> name ['chenliang', 'lili', 'lanlan', 'binbin', 'yinyin', 'xinxin', 'zhuer'] >>> >>> name[:5] ['chenliang', 'lili', 'lanlan', 'binbin', 'yinyin'] >>> >>> name[0:5] ['chenliang', 'lili', 'lanlan', 'binbin', 'yinyin'] >>> >>> name[0:5:1] ['chenliang', 'lili', 'lanlan', 'binbin', 'yinyin'] ## 取列表中间的N个元素(取列表的第2个元素到第5个元素) >>> name ['chenliang', 'lili', 'lanlan', 'binbin', 'yinyin', 'xinxin', 'zhuer'] >>> >>> name[1:5] ['lili', 'lanlan', 'binbin', 'yinyin'] >>> >>> name[1:5:] ['lili', 'lanlan', 'binbin', 'yinyin'] >>> >>> name[1:5:1] ['lili', 'lanlan', 'binbin', 'yinyin'] ## 从列表中间某个元素取到最后(从列表中的第4个元素取到最后) >>> name ['chenliang', 'lili', 'lanlan', 'binbin', 'yinyin', 'xinxin', 'zhuer'] >>> >>> name[3:] ['binbin', 'yinyin', 'xinxin', 'zhuer'] >>> >>> name[3::] ['binbin', 'yinyin', 'xinxin', 'zhuer'] >>> >>> name[3::1] ['binbin', 'yinyin', 'xinxin', 'zhuer'] ##################### 从列表的左边开始(排除右边的元素)############################## ## 取列表中除了最后N个元素外的所有元素(排除列表右边3个元素) >>> name ['chenliang', 'lili', 'lanlan', 'binbin', 'yinyin', 'xinxin', 'zhuer'] >>> >>> name[:-3] ['chenliang', 'lili', 'lanlan', 'binbin'] >>> >>> name[:-3:] ['chenliang', 'lili', 'lanlan', 'binbin'] >>> >>> name[:-3:1] ['chenliang', 'lili', 'lanlan', 'binbin'] ##################### 从某个元素跨步N个元素开始取##################################### ## 从第1个元素开始,每跨2个元素开始取 >>> name ['chenliang', 'lili', 'lanlan', 'binbin', 'yinyin', 'xinxin', 'zhuer'] >>> >>> name[::2] ['chenliang', 'lanlan', 'yinyin', 'zhuer'] >>> >>> name[0::2] ['chenliang', 'lanlan', 'yinyin', 'zhuer'] ## 从第2个字符开始,每跨2个字符开始取 >>> name ['chenliang', 'lili', 'lanlan', 'binbin', 'yinyin', 'xinxin', 'zhuer'] >>> >>> name[1::2] ['lili', 'binbin', 'xinxin'] ##################### 通过切片反转列表 ############################################### ## 通过切片反转列表(前队变后队) >>> name ['chenliang', 'lili', 'lanlan', 'binbin', 'yinyin', 'xinxin', 'zhuer'] >>> >>> name[-1::-1] ['zhuer', 'xinxin', 'yinyin', 'binbin', 'lanlan', 'lili', 'chenliang'] ## 通过切片反转列表(前队变后队,每隔2个元素) >>> name ['chenliang', 'lili', 'lanlan', 'binbin', 'yinyin', 'xinxin', 'zhuer'] >>> >>> name[-1::-2] ['zhuer', 'yinyin', 'lanlan', 'chenliang']