【列表类型】

1、按索引取值

索引可正向存取,也可反向存取

l = ['111', 'paipai', 'cat']
# 正向取值
print(l[1])
# 方向取值
print(l[-1])
# 通过索引给列表重新赋值,前提:索引存在
l[0] ='ccat'
print(l)
# 索引不存在的情况下,取值or重新赋值的情况下都会报错
l[3]=111
print(l)

2、切片操作

前闭后开,顾头不顾尾。可指定步长

# 切片操作
l = ['lll', 111, 222, 3333, 4444, 555, 777, 888, 999]
print(l[0:3])
# 指定步长进行操作
print(l[0:8:2])
# 取出整个列表的值
print(l[0:len(l)])
print(l[:]) #不指定 start 与 end 值直接取出整个列表的值
# 切片相当于浅拷贝操作(可变类型数值都是浅拷贝,字符串类型的拷贝就是深拷贝
l_new=l[:]
print(id(l),id(l_new))
l1 =('lll',111,222,3333,4444,555,777,888,999,[1,2,3])
l1[-1][2]=333
print(l)
print(id(l),id(l_new))
# 将列表的值按照倒序顺序取出
print(l[::-1])
msg='hello:egon:<>:18[]==123'
msg2=msg
print(msg,id(msg))
print(msg2,id(msg2))

3、长度

print(len[1,2,3])

4、成员运算符 in not in

print('aaa' in ['aaa',1,2])
print('bbb' not in ['aaa',1,2])

5、往列表中添加值

# 往列表中添加值
# 1)在列表末尾追加
list1 =['aaa','bbb','ccc']
list1.append('ddd')
list1.append('eee')
print(list1)
# 2)在指定的索引前面插入值
list1.insert(0,111)
list1.insert(0,222)
print(list1)
# extend 将A列表中的值按照单个值的样式添加进列表中,而不是整个列表的值都添加进去
new_l=[1,2,3]
l=[111,'paiapi','cat']
l.append(new_l) # 直接在列表中添加进了一个列表
print(l)
# 通过代码实现依次把列表的值添加进去,而不是直接添加整个列表
# 方式一:(比较复杂,不建议使用)
for item in new_l:
    l.append(item)
    print(l)
# 方式二:直接通过 extend来实现
l.extend(new_l)
print(l)
# 关注:extend也可以直接把字符串拆开,单个依次添加进去;
l.extend("abdc")
print(l)
l.extend("派派爱吃罐头")
print(l)

5、删除

 2)方式二 l.pop() 根据索引删除,会返回删除的值
l = ['aaa', 'bbb', 'ccc']
l.pop() # 不指定索引默认删除最后一个
print(l)
res=l.pop(0) # 指定索引,删除列表中第一个元素
print(l)
print(res)

# 3) l.remove() 根据元素进行删除,返回值None
l =[111,'egon',[1,2,3],'hello']
l.remove([1,2,3])
print(l)

6、 循环

for x in [1,'aaa','bbb']:
	print x

需要掌握的操作

1) l.count(x)

统计x在列表中出现的次数
l =[1,'aaa','bbb','bbb']
print(l.count('bbb'))  # 运行结果 2

2) l.index(x)

统计x在列表中首次出现的索引位置

l =[1,'aaa','eeee','bbb','bbb']
print(l.index('bbb')) 运行结果为3

3) l.clear

清空列表

l =[1,'aaa','eeee','bbb','bbb']
# print(l.clear())  # 当()里没有参数时,是不能直接通过print参数执行输出值
l.clear()
print(l)  # 输出一个空列表

4)l.reverse()

将列表进行倒序

l=[1,'aaa','bbbb','cccc','bbbb','bb','bbbb']
print(l)
l.reverse()
print(l)
# print(l.reverse()) # 注意 l.reverse不能直接通过print将列表打印出来.当()里没有参数时,是不能直接通过print参数执行输出值.执行命令输出None

5)l.sort()

默认将列表按照从小到大的顺序进行排序,称之为升序

l = [1,0,-2,4,8]
l.sort()
print(l)
# 实现降序排序
l.sort(reverse=True)  # TRUE 不能采用小写
print(l)
📢 排序关注点
l = [11,'a',12]
l.sort()
print(l) # 执行报错,只能同种类型的数值进行比较

字符串可以比较大小,主要根据字符在ASCI码中先后顺序加以区别。表中排在后面的字符大于排在前面个字符

# 字母排序
l = ['a','c','b']
l.sort()
print(l)

📚 两个列表之间也可以比较大小,原理同字符串一样,但是对应索引位置的元素必须是同种类型,否则无法比较

l1 = [1,'abc','zaa']
l2 = [1,'abc','zb']
print(l1<l2)   # 执行结果为true
🌶 队列与堆栈

队列:FIFO,先进先出

# ✅队列 FIFO,先进先出
from collections import deque
l =deque() # 创建空的双端队列作为队列
# 入队操作
l.append("first")
l.append("second")
l.append("third")
print("队列中的内容为:",l)
# 出队操作
print(l.popleft())
print(l.popleft())
print(l)

堆栈:LIFO 后进先出

# 堆栈:LIFO 后进先出
z=[]
# 入栈操作
z.append('first')
z.append('second')
z.append('third')
print(z)

# 出栈操作(不指定顺序,默认先移除最后添加的值
print(z.pop())
print(z.pop())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值