Python列表数据类型详解Python列表数据类型详解
列表就是⼀组有序的数据组合,列表中的数据可以被修改
列表的定义
使⽤中括号进⾏定义[]
使⽤list函数进⾏定义
元素之间使⽤逗号进⾏分隔 [1,2,3,4]
列表中的元素可以是任意类型
列表的增删改查
# 列表的定义
varlist=[1,2,3,4,5]
varlist1=['a','b','c','d','e']
# 列表的拼接
print(varlist+varlist1) # [1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'e']
print(varlist*2) # [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
# 检测元素是否存在列表中
print('a' in varlist1) # True
# 列表索引操作
print(varlist[0])
print(varlist[-4])
# 通过下标修改元素,但不可以通过下标添加元素
varlist[0]='aa'
print(varlist) #['aa', 2, 3, 4, 5]
varlist[0]=1
# 向列表中添加元素
varlist.append(6)
print(varlist) # [1, 2, 3, 4, 5, 6]
#获取列表的长度 len()
print(len(varlist)) # 6
列表的切⽚操作
# 从索引的开始到最后进⾏截取
varlist=['python','java','php','c','c++','vb','shell']
print(varlist[2:]) # ['php', 'c', 'c++', 'vb', 'shell']
# 截取到指定的索引位置
print(varlist[:2]) # ['python', 'java']
# 截取指定索引范围内的数据
print(varlist[2:6]) # ['php', 'c', 'c++', 'vb']
# 索引区间加步进
print(varlist[0:-1:2]) # ['python', 'php', 'c++']
# 截取列表中所有元素[:] [::]
print(varlist[:])
print(varlist[::])
# 使⽤切⽚⽅法对列表进⾏数据更新和删除
# 从指定下标开始到结束,替换为相应数据,整型⽆法操作
varlist[0:4]='abc'
print(varlist) # ['a', 'b', 'c', 'c++', 'vb', 'shell']
# 根据步进值进⾏更新
varlist[2:6:2]=['A','B']
print(varlist) # ['a', 'b', 'A', 'c++', 'B', 'shell']
# 根据索引进⾏删除
del varlist[2:6]
print(varlist) # ['a', 'b']
列表的相关函数
# d() 扩展列表
varlist=['python','java','php','c','c++','vb','shell','php']
varlist1=[1,2,3]
print(varlist) # ['python', 'java', 'php', 'c', 'c++', 'vb', 'shell', 'php', 'a,b,c']
print(varlist) # ['python', 'java', 'php', 'c', 'c++', 'vb', 'shell', 'php', 'a,b,c', 1, 2, 3]
# varlist.clear() 清空列表内容
varlist1.clear()
print(varlist1)
# verse() # 翻转列表
print(varlist) # [3, 2, 1, 'a,b,c', 'php', 'shell', 'vb', 'c++', 'c', 'php', 'java', 'python']
# varlist.sort() 列表排序
varlist=[2,3,4,1,5,7,3,4,7,8,4,0,7,45,23]
varlist.sort(reverse=True) #对列表进⾏从⼤到⼩排序
print(varlist) # [45, 23, 8, 7, 7, 7, 5, 4, 4, 4, 3, 3, 2, 1, 0]
varlist.sort() # 默认对列表进⾏从⼩到⼤排序
print(varlist) # [0, 1, 2, 3, 3, 4, 4, 4, 5, 7, 7, 7, 8, 23, 45]
print(varlist) # [45, 23, 8, 7, 7, 7, 5, 4, 4, 4, 3, 3, 2, 1, 0]
#传出函数,根据函数计算规则进⾏排序
varlist.sort(key=abs)
print(varlist) # [0, 1, 2, 3, 3, 4, 4, 4, 5, 7, 7, 7, 8, 23, 45]
# py() 复制⼀个列表
py()
print(res)
深拷贝与浅拷贝
# 浅拷贝对于多维列表不能拷贝,只能引⽤
varlist=[[1,2,3],['a','b','c']]
py()
print(newlist[0],id(newlist[0]))
print(varlist[0],id(varlist[0]))
# 深拷贝
import copy
varlist1=[1,2,3,['a','b','c']]
newlist1=copy.deepcopy(varlist1)
print('---------------')
print(newlist1[1],id(newlist[1]))
print(varlist1[1],id(varlist[1]))
列表推导式
列表推导式提供了简单的创建列表的⽅法
使⽤表达式的⽅式,对数据进⾏过滤并且把结果组成⼀个新列表#计算0-9的平房列表
varlist=[]
for i in range(10):
res = i**2
varlist.append(res)
print(varlist)
#简化⽅法
varlist=list(map(lambda i:i**2,range(10)))
print(varlist)
#使⽤列表推导式
"""
1.变量=[变量或变量的处理结果 for i in 容器类型数据]
2.变量=[变量或变量的处理结果 for i in 容器类型数据条件表达式]
"""
varlist=[i**2 for i in range(10)]
print(varlist)
#使⽤列表推导式完成字符串*2后的结果⽣成新的list
varstr='1234'
varlist=[int(i)*2 for i in varstr]
print(varlist)
# 使⽤位运算完成
varstr='1234'
varlist=[int(i)<<3 for i in varstr]
print(varlist)
#带有判断条件的列表推导式
#求0-9的所有偶数
varlist=[]
字符串切片截取
res=[i for i in range(10) if i%2==0 ]
print(res)
#多循环推导式
# [1,2,3]  [3,1,4] 两个列表中的元素进⾏两两组合,且不可重复
x=[1,2,3]
y=[3,1,4]
varlist=[(i,j) for i in x for j in y if i!=j]
print(varlist)
#练习题
"""
转换:字典{'username':'admin','age':20,'phone':133}
换成:列表['username=admin','age=20','phone=133']
扩展:username=admin&age=20&phone=133
"""
vardict={'username':'admin','age':20,'phone':133}
varlist=[i+'='+str(vardict[i]) for i in vardict]
print(varlist)
str='&'.join(varlist)
print(str)
"""
转换:['AAA','BBb','CCcc']
换成:['aaa','bbb','ccc']
换成:['AAA', 'BBB', 'CCCC']
"""
varlist=['AAA','BBb','CCcc']
newlist=[i.upper() for i in varlist]
print(newlist)
newlist=[i.lower() for i in varlist]
print(newlist)
"""
x 是0-5的偶数,y是0-5的奇数,把x,y组成元组,放到列表中
"""
varlist=[(x,y) for x in range(6) for y in range(6) if x % 2==0 and y % 2 ==1] print(varlist)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。