博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习之路,基础知识-列表(list)
阅读量:5052 次
发布时间:2019-06-12

本文共 9109 字,大约阅读时间需要 30 分钟。

Python序列数据结构

1、列表(list)

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

列表(list)是一组有序存储的数据,列表具有如下特性:

  • 和变量一样,每个列表都有一个唯一标识它的名称;
  • 一个列表的元素应具有相同的数据类型;
  • 每个列表元素都有索引和值两个属性,索引是一个从0开始的整数,用于标记元素在列表中的位置;值就是元素对应的值;

1.1 定义列表

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

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 product_list = ['iphone','ipad','iwatch','macbook pro']

1.2 访问列表

使用下标索引来访问列表中的值,下标从0开始计数;

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 print(product_list[0])4 print(product_list[0:2])

1.3 列表切片

可是使用切片访问列表中的多个值

1 #!/usr/bin/env  python 2 # -*- coding:utf-8 -*- 3 product_list = ['iphone','ipad','iwatch','macbook pro'] 4  5 #打印列表中从索引0开始到索引2的值; 6 print(product_list[0:2]) 7 #输出结果:['iphone', 'ipad'] 8 #如果是从头开始去,索引0可以忽略,输出结果跟[0:2]一样; 9 print(product_list[:2])10 #输出结果:['iphone', 'ipad']11 #取列表中的最后一个值12 print(product_list[-1])13 #输出结果:macbook pro14 #取下标1至-1的值,不包括-115 print(product_list[1:-1])16 #输出结果:['ipad', 'iwatch']17 #取第2个开始到最后一个值,包含最后一个值,不能写-1,应该写[1:]18 print(product_list[1:])19 #输出结果:['ipad', 'iwatch', 'macbook pro']20 #取列表的值,每隔2个取一个值的写法[::2]21 print(product_list[::2])22 #输出结果:['iphone', 'iwatch']23 24 #注:列表切片的特性:顾头不顾尾,从左往右取,包含开头,不包含结尾的值;

1.4 列表其他函数应用

1.4.1 获取列表长度

列表长度指列表中元素的数量,可以通过len()函数获取列表的长度,方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 product_list = ['iphone','ipad','iwatch','macbook pro']4 print(len(product_list))5 #输出结果:4

1.4.2 列表追加元素

往列表中追加元素,可以使用append()函数往列表中追加新元素,方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 product_list = ['iphone','ipad','iwatch','macbook pro']4 product_list.append('itv')5 print(product_list)6 #输出结果:['iphone', 'ipad', 'iwatch', 'macbook pro', 'itv']

1.4.3 列表插入元素

往列表中插入元素,可以使用insert()函数往列表中的某个位置插入新元素,方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 product_list = ['iphone','ipad','iwatch','macbook pro']4 product_list.insert(1,'iphone100')5 print(product_list)6 #输出结果:['iphone', 'iphone100', 'ipad', 'iwatch', 'macbook pro']

1.4.4 列表删除元素

列表删除元素的方法有三种:

del  list[index] ;

list.remove('要删除的列表元素值')

list.pop('要删除的列表索引号'):当列表索引号为空时,默认删除最后一个

三种方法示例:

1 #!/usr/bin/env  python 2 # -*- coding:utf-8 -*- 3  4 product_list = ['iphone','ipad','iwatch','macbook pro'] 5  6 #第一种删除方法: 7  8 del product_list[0] 9 print(product_list)10 #输出结果:['ipad', 'iwatch', 'macbook pro']11 12 #第二中删除方法:13 product_list.remove('iphone')14 print(product_list)15 #输出结果:['ipad', 'iwatch', 'macbook pro']16 17 #第三种删除方法:18 product_list.pop()   #list.pop(),当索引值为空时,默认值为-1,删除最后一个列表元素;19 print(product_list)20 #输出结果:['iphone','ipad','iwatch']21 22 product_list.pop(2)  #当指定索引时,删除指定索引23 print(product_list)24 #输出结果为:['iphone', 'ipad', 'macbook pro']

1.4.5 列表扩展

可以通过extend()函数将一个列表中的每个元素分别添加到另外一个列表中,具体使用方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 product_list = ['iphone','ipad','iwatch','macbook pro']4 5 menu_list = [1,2,3,4,5,6,7,8]6 7 product_list.extend(menu_list)8 print(product_list)9 #输出结果:['iphone', 'ipad', 'iwatch', 'macbook pro', 1, 2, 3, 4, 5, 6, 7, 8]

1.4.6 列表复制

可以使用copy()函数对列表进行复制,具体使用方法如下:

1 #!/usr/bin/env  python 2 # -*- coding:utf-8 -*- 3  4 #浅copy 5  6 product_list = ['iphone','ipad','iwatch','macbook pro'] 7  8 memu_list = product_list.copy()  #浅copy,当列表只有一层,未再嵌套列表时,为完全复制列表;等同于调用copy模块时使用的copy.copy() 9 print(product_list)10 print(memu_list)11 12 #输出结果:13 ['iphone', 'ipad', 'iwatch', 'macbook pro']14 ['iphone', 'ipad', 'iwatch', 'macbook pro']15 16 #调用copy模块效果:17 import copy18 memu_list = copy.copy(product_list)19 print(product_list)20 print(memu_list)21 22 #输出结果:23 ['iphone', 'ipad', 'iwatch', 'macbook pro']24 ['iphone', 'ipad', 'iwatch', 'macbook pro']25 26 #当列表中嵌套列表时,浅copy的效果只会copy第一层列表:27 product_list = ['iphone','ipad','iwatch',['华为','小米'],'macbook pro']28 29 memu_list = product_list.copy()  #浅copy,当列表只有一层,未再嵌套列表时,为完全复制列表;等同于调用copy模块时使用的copy.copy()30 print(product_list)31 print(memu_list)32 #输出结果33 ['iphone', 'ipad', 'iwatch', ['华为', '小米'], 'macbook pro']34 ['iphone', 'ipad', 'iwatch', ['华为', '小米'], 'macbook pro']35 修改列表36 product_list[1] = '苹果'  #修改product_list列表的第2个值37 product_list[3][1] = '诺基亚'  #修改product_list列表中嵌套的列表的第2个值38 print(product_list)39 print(memu_list)40 #输出结果:41 ['iphone', '苹果', 'iwatch', ['华为', '诺基亚'], 'macbook pro']42 ['iphone', 'ipad', 'iwatch', ['华为', '诺基亚'], 'macbook pro']43 44 #深copy,需要调用copy模块,方法:copy.deepcopy()45 import copy46 memu_list = copy.deepcopy(product_list)  #深copy,在内存中另外建了一块地址,用于存储menu_list47 print(product_list) 48 print(memu_list)49 #输出结果:50 ['iphone', 'ipad', 'iwatch', ['华为', '小米'], 'macbook pro']51 ['iphone', 'ipad', 'iwatch', ['华为', '小米'], 'macbook pro']52 product_list[1] = '苹果'53 product_list[3][1] = '诺基亚'54 print(product_list)55 print(memu_list)56 #输出结果:57 ['iphone', '苹果', 'iwatch', ['华为', '诺基亚'], 'macbook pro']58 ['iphone', 'ipad', 'iwatch', ['华为', '小米'], 'macbook pro']

 1.4.7 列表的统计

可以使用count()函数统计列表中某个元素的个数,具体使用方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 product_list = ['iphone','ipad','iwatch',['华为','小米'],'macbook pro','iphone']4 5 print(product_list.count('iphone'))6 #输出结果7 2

1.4.8 列表的排序

列表排序操作值按列表元素值的升序、降序、反序重新排列列表元素的位置。

sort()函数:对列表进行升序排列,其使用方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 product_list = ['apple','xiaomi','huawei','lianxiang','nuojiya','vivo','oppo']4 5 product_list.sort()6 print(product_list)7 8 #输出结果9 ['apple', 'huawei', 'lianxiang', 'nuojiya', 'oppo', 'vivo', 'xiaomi']

reverse()函数:对列表进行反序排列,其使用方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 product_list = ['apple','xiaomi','huawei','lianxiang','nuojiya','vivo','oppo']4 5 product_list.reverse()6 print(product_list)7 8 #输出结果:9 ['oppo', 'vivo', 'nuojiya', 'lianxiang', 'huawei', 'xiaomi', 'apple']

可以使用sort()和reverse()函数结果使用,对列表进行降序排列,使用方法如下:

#!/usr/bin/env  python# -*- coding:utf-8 -*-product_list = ['apple','xiaomi','huawei','lianxiang','nuojiya','vivo','oppo']product_list.sort()product_list.reverse()print(product_list)#输出结果为:['xiaomi', 'vivo', 'oppo', 'nuojiya', 'lianxiang', 'huawei', 'apple']

1.4.9 定位列表元素(获取列表元素下表)

可以使用index()函数来获取列表中某个元素的索引号,其使用方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 product_list = ['apple','xiaomi','huawei','lianxiang','nuojiya','vivo','oppo','apple','huawei']4 print(product_list.index('apple'))#当列表中有重复的值时,只获取第一个元素的下标;5 6 #输出结果:7 0

1.4.10 遍历列表元素

编列列表元素的方法为使用for 循环,具体使用方法如下:

1 #!/usr/bin/env  python 2 # -*- coding:utf-8 -*- 3 product_list = ['apple','xiaomi','huawei','lianxiang','nuojiya','vivo','oppo'] 4 for  i  in range(len(product_list)): 5     print(product_list[i]) 6  7 #输出结果: 8 apple 9 xiaomi10 huawei11 lianxiang12 nuojiya13 vivo14 oppo

也可以使用enumerate()函数编列列表的索引和元素,具体使用方法如下:

1 #!/usr/bin/env  python 2 # -*- coding:utf-8 -*- 3 product_list = ['apple','xiaomi','huawei','lianxiang','nuojiya','vivo','oppo'] 4 for index,item in enumerate(product_list): 5     print(index,item) 6 #输出结果: 7 0 apple 8 1 xiaomi 9 2 huawei10 3 lianxiang11 4 nuojiya12 5 vivo13 6 oppo

 2、元组(tuple)

元组(tuple)与列表非常相似,它具有以下特性:

  • 一经定义,元组的内容不能修改(也叫只读列表);
  • 元组元素可以存储不同类型的数据,可以是字符串、数字、甚至是元组;
  • 元组元素由圆括号括起来;

2.1、元组的定义

定义一个元组的方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 t = ('iphone','ipad','macbook pro','itv')4 print(t)

2.2、访问元组元素

与列表一样,可以使用索引访问元组元素,使用方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 t = ('iphone','ipad','macbook pro','itv')4 print(t[0])5 #输出结果:iphone

2.3、元组切片

与列表一样,列表的切片方法同样适用于元组,使用方法如下:

1 #!/usr/bin/env  python 2 # -*- coding:utf-8 -*- 3 t = ('iphone','ipad','macbook pro','itv') 4 print(t[0]) 5 print(t[0:]) 6 print(t[-1]) 7 print(t[1:3]) 8 #输出结果: 9 iphone10 ('iphone', 'ipad', 'macbook pro', 'itv')11 itv12 ('ipad', 'macbook pro')

2.4、获取元组长度

元组长度指元组中元素的数量,可以通过len()函数获取元组的长度,使用方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 t = ('iphone','ipad','macbook pro','itv')4 print(len(t))5 #输出结果:4

2.5、定位元组元素位置

与列表一样,定位元组元素位置可以使用index()函数,使用方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 4 t = ('iphone','ipad','macbook pro','itv')5 print(t.index('iphone'))6 #输出结果:0

2.6、统计元组中某个元素的个数

与列表一样,统计元组中某个元素的个数使用count()函数,使用方法如下:

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 t = ('iphone','ipad','macbook pro','itv','iphone','iphone')4 print(t.count('iphone'))5 #输出结果为:3

2.7、遍历元组元素

与列表一样,可以使用for循环遍历元组元素,使用方法如下:

1 #!/usr/bin/env  python 2 # -*- coding:utf-8 -*- 3 使用for循环遍历 4 t = ('iphone','ipad','macbook pro','itv','iphone','iphone') 5 for i in range(len(t)): 6     print(t[i]) 7  8 #输出结果: 9 iphone10 ipad11 macbook pro12 itv13 iphone14 iphone15 16 使用enumrate()函数编列元组的索引和值:17 t = ('iphone','ipad','macbook pro','itv','iphone','iphone')18 for index,item in enumerate(t):19     print(index,item)20 21 #输出结果:22 0 iphone23 1 ipad24 2 macbook pro25 3 itv26 4 iphone27 5 iphone

2.8、元组和列表的转换

元组和列表的转换可以使用list()函数和tuple()函数,使用方法如下:

元组转列表:

 

1 #!/usr/bin/env  python2 # -*- coding:utf-8 -*-3 t = ('iphone','ipad','macbook pro','itv','iphone','iphone')4 print(list(t))5 #输出结果:6 ['iphone', 'ipad', 'macbook pro', 'itv', 'iphone', 'iphone']

 

列表转元组:

1 #!/usr/bin/env  python 2 # -*- coding:utf-8 -*- 3 t = ('iphone','ipad','macbook pro','itv','iphone','iphone') 4 l = list(t) 5  6 print(l) 7 #输出结果: 8 ['iphone', 'ipad', 'macbook pro', 'itv', 'iphone', 'iphone'] 9 10 print(tuple(l))11 #输出结果:12 ('iphone', 'ipad', 'macbook pro', 'itv', 'iphone', 'iphone')

 

 

 

 

转载于:https://www.cnblogs.com/benet/p/6390990.html

你可能感兴趣的文章
java学习笔记之String类
查看>>
pymysql操作mysql
查看>>
Linux服务器删除乱码文件/文件夹的方法
查看>>
牛腩记账本core版本源码
查看>>
Word Break II
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
jdk从1.8降到jdk1.7失败
查看>>
一些关于IO流的问题
查看>>
mongo备份操作
查看>>
8 -- 深入使用Spring -- 3...1 Resource实现类InputStreamResource、ByteArrayResource
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
一个关于vue+mysql+express的全栈项目(六)------ 聊天模型的设计
查看>>
【知识库】-数据库_MySQL 的七种 join
查看>>
.net 写文件上传下载webservice
查看>>
noSQL数据库相关软件介绍(大数据存储时候,必须使用)
查看>>
iOS开发——缩放图片
查看>>
HTTP之URL的快捷方式
查看>>
满世界都是图论
查看>>
配置链路聚合中极小错误——失之毫厘谬以千里
查看>>
代码整洁
查看>>