1、概述
列表是存储有序对象的一组容器
l=[x1,x2,x3,x4.......xn]
- 是list类型
- l 和 l[0] 的地址不同
l=['T3','大数据分析',90] print(id(l)) print(id(l[0]))
结果:
2544747420352 #l 和 l[0] 的地址不同 2544747162416
print(id(l[0])) print(id(l[1])) print(id(l[2]))
结果:
2544747162416 2544746891952 2544671675536
import sys print(sys.getsizeof(l)) # 元素大小 print(sys.getrefcount(l)) # 被引用的次数 print(sys.getsizeof(l[0])) print(sys.getrefcount(l[0])) print(sys.getsizeof(l[1])) print(sys.getrefcount(l[1])) print(sys.getsizeof(l[2])) print(sys.getrefcount(l[2]))
结果:
120 2 51 2 84 2 28 31
s1='经济与管理大数据分析' l1=list(s1) l1
结果:如果是str
使用list
,会把一个个字符拆开
['经', '济', '与', '管', '理', '大', '数', '据', '分', '析']
如果是元组类型(tuple
),则会按照逗号分隔,合成为列表
s2=('经济','管理','大数据','分析') type(s2) # 类型是tuple——元组类型 l2=list(s2) l2 # 结果:['经济', '管理', '大数据', '分析']
(1)列表嵌套
s1='经济与管理大数据分析' l1=list(s1) s2=('经济','管理','大数据','分析') l2=list(s2) l3=[l1,l2,'hahaha'] l3
结果:
[['经', '济', '与', '管', '理', '大', '数', '据', '分', '析'], ['经济', '管理', '大数据', '分析'], 'hahaha']
l3[0] 和 l3[1] 都是列表,l3[2] 是字符串
(2)切片与索引
切片: start:stop:step
索引:
l4=list(l3[2])
2、常用的方法
追加,删除,更新,排序
(1)追加( append,extend,insert )
- 无论使用
append,extend,insert
的哪个做添加,内存地址都不会发生变化
l5.append('课程') l5.append('课程') l5.append(['课','程'])
结果:
['经', '济', '与', '管', '理', '大', '数', '据', '分', '析', '课程', '课程', ['课', '程']]
extend和append的区别:
1、append就是添加元素
2、extend就是扩展,将要添加对象的所有元素都加到列表后面
l6=['张三',9876.54] l6.append('女') l6.append(['总经理','506']) l6.append(('福徽省','已婚')) # ['张三', 9876.54, '女', ['总经理', '506'], ('福徽省', '已婚')]
l6.extend(['总经理','506']) l6.extend(('福徽省','已婚'))
使用extend之后的l6:
['张三', 9876.54, '女', ['总经理', '506'], ('福徽省', '已婚'), '总经理', '506', '福徽省', '已婚', '总经理', '506', '福徽省', '已婚']
(2)删除( remove,pop )
关于remove
,如果列表中有两个 ‘女’ ,则使用remove
只能删除第一个’ 女 ’ 。remove
是逐个删除。
l6.remove('女')
pop:根据特定的索引号进行删除
l6.pop(-1) #将最后一个进行删除
(3)排序( sort,reverse )
l6.sort() #['1990-9-1', '1990-9-1', '506', '已婚', '张三', '总经理', '福徽省'] l6.sort(reverse=True) #['福徽省', '总经理', '张三', '已婚', '506', '1990-9-1', '1990-9-1']
reverse
是根据索引的位置进行倒转,而非根据数值的位置进行倒转
(4)更新
更新是根据特定位置进行更新