首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python列表list详解篇(七)

Python列表list详解篇(七)

作者头像
py3study
发布2020-01-08 15:51:14
5160
发布2020-01-08 15:51:14
举报
文章被收录于专栏:python3python3

介绍:

列表是最常用的python数据类型,它可以作为一个方括号内的逗号用分隔值出现。

列表的数据项不需要具有相同的类型。

创建一个列表,只要逗号分隔的不同数据项用方括号括起来即可。

name=[‘’beijing,’shenzhen’,’nanjing’]

访问列表的值:(列表的下标是从0开始计算第一位的,-1从倒数第一位计算)

list_names = ['shenzhen','nanjing','beijing'] #list_num = ['11','22','33'] print(list_names[0]) print(list_names[2]) print(list_names[-1]) print(list_names[-2]) print(list_names[:2]) #这里是指打印第一位到第三位(第三位不算此列)

print(list_names[-2:-1]) #从左向右数倒1不算,所以打印倒数第二个

运行结果:

shenzhen

beijing

beijing

nanjing

['shenzhen', 'nanjing']

['nanjing']

注意:

1.列表的下标是从0开始计算(0相当于第一位)

2.-1表示倒数第一位

3.列表中的下标是从左向右计数(读取)

切片:截取多个元素

list_names = ['ShenZhen','NanJing','BeiJing','YueYang','ChangSha','GuangZhou','ShaXian'] #list_num = ['11','22','33'] print(list_names[1:4]) #去下标1-4,不包括4 print(list_names[1:-1])#截取下标1~-1不包括-1 print(list_names[1:])#想获取到最后一个只能这么写 print(list_names[0:4]) print(list_names[:4]) #与[0:4]效果等同,所以可以省略0 print(list_names[0::2])#后面的2是代表每隔一个元素就获取一个。2是可以变的。如果写成[0::1]效果等同于[:]d打印全部元素 print(list_names[::2]) #效果等同于[0::2]

运行结果:

['NanJing', 'BeiJing', 'YueYang']

['NanJing', 'BeiJing', 'YueYang', 'ChangSha', 'GuangZhou']

['NanJing', 'BeiJing', 'YueYang', 'ChangSha', 'GuangZhou', 'ShaXian']

['ShenZhen', 'NanJing', 'BeiJing', 'YueYang']

['ShenZhen', 'NanJing', 'BeiJing', 'YueYang']

['ShenZhen', 'BeiJing', 'ChangSha', 'ShaXian']

['ShenZhen', 'BeiJing', 'ChangSha', 'ShaXian']

注意:你还以继续探索,多练就能熟练掌握。

追加:(默认追加到list最后一位)

list_names = ['ShenZhen','NanJing','BeiJing','YueYang','ChangSha','GuangZhou','ShaXian'] list_names.append('Welcome')#默认追加到最后面 print(list_names)

运行结果:

['ShenZhen', 'NanJing', 'BeiJing', 'YueYang', 'ChangSha', 'GuangZhou', 'ShaXian', 'Welcome']

插入:insert()

list_names = ['1','NanJing','a','BB','中文','@','>','a'] list_names.insert(2,'ShenZhen') print(list_names)

运行结果:

['1', 'NanJing', 'ShenZhen', 'a', 'BB', '中文', '@', '>', 'a']

修改:

list_names = ['1','NanJing','a','BB','中文','@','>','a'] list_names[1]='ShenZhen' print(list_names)

运行结果:

['1', 'ShenZhen', 'a', 'BB', '中文', '@', '>', 'a']

统计/拷贝/清除:count()()&clear()

list_names = ['ShenZhen','NanJing','BeiJing','YueYang','ShenZhen','ChangSha','ShenZhen','GuangZhou','ShaXian'] print(list_names.count('ShenZhen')) #.count统计某个元素个数 list_copy=list_names.copy() print(list_copy) #把list_names列表内容拷贝给了list_copy. list_names.clear() print(list_names) #清空当前列表内的元素

运行结果:

3

['ShenZhen', 'NanJing', 'BeiJing', 'YueYang', 'ShenZhen', 'ChangSha', 'ShenZhen', 'GuangZhou', 'ShaXian']

[]

删除番外篇 list_del=['11','22','33','44','55','66','77','88','99'] del list_del[2:5]#删除三到五 print(list_del)

运行结果:

['11', '22', '66', '77', '88', '99']

拷贝番外篇:

1、copy模块

import copy  #运用模块 list_copy=['11','22','33','44',['Shenzhen',['11','22'],'Guangzhou','Changsha'],'55','66'] print(list_copy) list_deep=copy.deepcopy(list_copy) #深copy(看下面注解) list2=copy.copy(list_copy) #浅copy(看下面注解) list_copy[4][1][0]='aa' list_copy[2]='cc' print(list_copy) print(list_deep) print(list2)

运行结果:

['11', '22', '33', '44', ['Shenzhen', ['11', '22'], 'Guangzhou', 'Changsha'], '55', '66'] #原始数据

['11', '22', 'cc', '44', ['Shenzhen', ['aa', '22'], 'Guangzhou', 'Changsha'], '55', '66']

['11', '22', '33', '44', ['Shenzhen', ['11', '22'], 'Guangzhou', 'Changsha'], '55', '66'] #deepcopy结果

['11', '22', '33', '44', ['Shenzhen', ['aa', '22'], 'Guangzhou', 'Changsha'], '55', '66'] #浅copy结果

2、copy() list_copy=['11','22','33','44',['Shenzhen',['11','22'],'Guangzhou','Changsha'],'55','66'] list1=list_copy.copy() print(list1) list_copy[4][1][0]='aa' list_copy[2]='cc' print(list_copy) print(list1)

运行结果:

['11', '22', '33', '44', ['Shenzhen', ['11', '22'], 'Guangzhou', 'Changsha'], '55', '66']

['11', '22', 'cc', '44', ['Shenzhen', ['aa', '22'], 'Guangzhou', 'Changsha'], '55', '66']

['11', '22', '33', '44', ['Shenzhen', ['aa', '22'], 'Guangzhou', 'Changsha'], '55', '66']

注:

深copy与浅copy

共同点:不会因为列表的父层变动而变动

不同点:子列表修改时,浅copy会跟随变动而变动,而深copy不会变动。

以上是深copy与浅copy的整理,然后发现目前而言并没有什么卵用啊

合并列表:extend()

list_names = ['ShenZhen','NanJing',['11','22','33'],'YueYang','ChangSha','GuangZhou','ShaXian'] list_extend=['aa','bb'] list_names.extend(list_extend) print(list_names)

运行结果:

['ShenZhen', 'NanJing', ['11', '22', '33'], 'YueYang', 'ChangSha', 'GuangZhou', 'ShaXian', 'aa', 'bb']

反转&排序:reverse()&sort()

list_names = ['1','NanJing','a','BB','中文','@','>'] list_names.reverse() print(list_names) list_names.sort()#排序,数字>特殊字符>大写字母>小写字母>中文 print(list_names)

执行结果:

['>', '@', '中文', 'BB', 'a', 'NanJing', '1']

['1', '>', '@', 'BB', 'NanJing', 'a', '中文']

获取下标:index()

list_names = ['1','NanJing','a','BB','中文','@','>','a'] print(list_names.index('a'))#只返回找到的第一个下标

执行结果:

2

知识小结:

1.pop()函数(列表使用方法)

语法: list.pop(obj=list[-1]) 参数: obj:可选参数,要移除列表元素的对象 返回值: 改方法返回从列表中被移除的元素对象。 实例: 以下展示pop()函数的用法

list_del=['11','22','33','44','55','66','77','88','99'] print(list_del.pop(3)) print(list_del.pop()) #用于移除列表中的一个元素,并返还该元素的值。这里小括号不填默认是最后一个

运行结果:

44

99

2.remove()函数(列表使用方法)

用于移除列表中某个值的第一个匹配项 语法: list.remove(obj) 参数: obj:列表中要移除的对象 返回值: 该方法没有返回值,但是会移除两种中的某个值的第一个匹配项。 实例: list_del=['11','22','33','44','55','66','77','88','99'] list_del.remove('11') #删除指定元素 print(list_del) list_del.remove('99') print(list_del)

运行结果:

['22', '33', '44', '55', '66', '77', '88', '99']

['22', '33', '44', '55', '66', '77', '88']

注:

更多的字符串讲解,请关注后续的Python字符串的常用操作篇

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档