列表是一个可增加、删除元素的可变容器。
基本操作
创建方法
list = []
使用Python的内置函数len求list内元素个数。
len(lst) # 6
遍历方法
for in
判断类型方法
type
lst = [12,'你好',['shmaur',52]]
print(len(lst))
for _ in lst:
print(f'{_}的类型为{type(_)}')
append() 往list 尾部插入元素
sku = lst[4]
sku.append('sanin')
指定位置插入元素 insert()
sku.insert(1,'尖子')
print(sku)
移除数组中最后一个元素 pop()
item = sku.pop()
print(item)
print(sku)
移除数组中指定元素
sku.remove('尖子')
print(sku)
拷贝
浅拷贝 copy()
sku_deep = lst[4].copy()
print(sku_deep)
sku_deeps = lst.copy()
sku_deeps[0] = 'Shmaurs'
sku_deeps[4][1] = 86
print(sku_deeps)
# 测试两个值的相等性
print(lst[0] == sku_deeps[0])
# 测试二维数组是否相等
print(lst[4][1] == sku_deeps[4][1]) # 返回 True,进⼀步证明是浅拷⻉,不是深拷⻉。
深度拷贝,需要使⽤ copy 模块的 deepcopy 函数
from copy import deepcopy
newSku = deepcopy(lst)
newSku[0] = 'love shmaur'
newSku[4][1] = 98
print('=============')
print(lst)
print(newSku)
# 测试两个值的相等性
print(lst[0] == newSku[0])
# 测试二维数组是否相等
print(lst[4][1] == newSku[4][1]) # 返回 True,进⼀步证明是浅拷⻉,不是深拷⻉。
print(lst)
print(newSku)
切片
ange(start,stop,step) ⽣成序列数据,并转为 list 类型
qiepian = list(range(1,40,3))
print(qiepian)
# 获取前面三个元素
print(qiepian[:3]) # 获取前面三个
print(qiepian[-1]) # 获取最后一个元素
print(qiepian[:-1]) # 获取除了最后一个元素的所有元素
print(qiepian[1:5]) # 获取从索引1到5,不包含索引5,实际就是4个
print(qiepian[1:10:3]) # 获取从索引1到10,在这个数组中按每三个取一次
print(qiepian)
print(qiepian[::3]) # 获取步长为3,也就是每第三个获取
print(qiepian[::-3]) # 获取逆向步长为3,也就是每第三个获取
#使用列表逆向切片操作
def reverse(qiepian):
return qiepian[::-1]
newQiepian = reverse(qiepian)
print(newQiepian)
元组
元组既然是不可变(immutable)对象,⾃然也就没有增加、删除元素的⽅法。
基本操作
tu = () # 空元组对象
atu = (1,2,3,'45',52.568)
以上都是元组,除了list使用[]创建外,其他与list都很相似,比如都支持切片操作。
特别需要注意,一个整数加一对括号,比如(10),返回的是整数,必须加一个逗号(10,)才会返回元组对象。
atu = ()
btu = (1,2,3,'sdgf',25.588)
ctu = (1,2,3,'sdgf',25.588,['234','wer'])
atuInt = ctu[1]
print(atuInt)
列表和元组的统计方法 count
from numpy import random
ran = random.randint(1,5,10) # 从 [1,5) 区间内随机选择 10 个数
print(ran) # [2 4 2 4 2 3 1 2 3 2]
ranTu = tuple(ran)
print(ranTu.count(4)) # 2