列表 增、删、改、查
元组
range
列表
#增
#三种方法 append insert extand
#方法一 append
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']l1.append('小温')
print(l1)
l1.append(['a',1,'文'])
print(l1)
['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天', '小温']
['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天', '小温', ['a', 1, '文']]
应用场景 给名单增加新的 成员
name_list = ['张三','李四']
while 1:
name_new = input('请输入新员工是的姓名:').strip()
if name_new.upper() == 'Q':break
name_list.append(name_new)
print(name_list)
请输入新员工是的姓名:zhangsan
请输入新员工是的姓名:李四
请输入新员工是的姓名:q
['张三', '李四', 'zhangsan', '李四']
# 方法二 insert
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
l1.insert(1,'元宝')
print(l1)
['alex', '元宝', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
#方法三extend
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
l1.extend('abcdef')
print(l1)
'alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天', 'a', 'b', 'c', 'd', 'e', 'f']
#删
#删除的四种方法
#pop remove clear del
#方法一 pop 按照索引号 将其对应的元素 删除掉
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
l1.pop(0)
print(l1.pop(0))
print(l1)
wusir
['taibai', 'egon', '景女神', '文周老师', '日天']
#方法二remove 按照 元素 将该元素从列表中移除
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
l1.remove('alex')
print(l1)
['wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
#方法三 clear 直接将列表清空 相当于把瓶子里面的水倒掉
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
l1.clear()
print(l1)
[]
#方法4 del del分为3种方式
#第一种del 直接将列表从内存中清除 打印都没法打印 相当于把瓶子扔掉了
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
del l1
print(l1)
报错!!
#第二种del 按照索引 将索引对应的元素冲列表中删除
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
del l1[0]
print(l1)
['wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
#第三种del 按切片 将对应的元素从列表中切除
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
del l1[:2]
print(l1)
['taibai', 'egon', '景女神', '文周老师', '日天']
#改
#改的三种方法
#第一种方法
#把 值 赋给需要改动的位置
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
l1[-1] = '文'
print(l1)
['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '文']
#第二种方法
#把 值 赋给切片切掉的位置
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
l1[:2] = ['chenwen','文']
print(l1)
['chenwen', '文', 'taibai', 'egon', '景女神', '文周老师', '日天']
#把列表前面两个元素切掉 然后再赋值 注意赋值的时候是**逐个迭代**的赋值
#拆分成最小单元 逐个进行赋值
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
l1[:2] = 'abcdefg'
print(l1)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'taibai', 'egon', '景女神', '文周老师', '日天']
#第三种方法
#将列表 切片+步长 再进行赋值
# 此时就需要 元素个数相同 一对一进行逐个赋值
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
l1[:5:2] = '123'
print(l1)
['1', 'wusir', '2', 'egon', '3', '文周老师', '日天']
#查
#索引,元素,切片,切片+步长
#for循环
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
for i in l1:
print(i)
alex
wusir
taibai
egon
景女神
文周老师
日天
#列表的其他常用处理方法
#len()
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
print(len(l1))
7
#count
#计算某个元素出现的次数
l1 = ['alex','alex','wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
print(l1.count('alex'))
2
#index
#通过元素 来 找该元素在列表中的索引
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天']
print(l1.index('taibai'))
2
#sort
#对于纯数字的列表进行从小到大的排列
l2 = [1, 4, 52, 7, 1, 47, 1, 4, 1, 5, 2]
l2.sort()#这只是一部操作 没有返回值
print(l2.sort())
print(l2)
None
[1, 1, 1, 1, 2, 4, 4, 5, 7, 47, 52]
#sort
#反向排序
l2 = [1, 4, 52, 7, 1, 47, 1, 4, 1, 5, 2]
l2.sort(reverse=True)
print(l2)
[52, 47, 7, 5, 4, 4, 2, 1, 1, 1, 1]
#reverse()
#不需要排序
#只是将前后顺序颠倒
l2 = [1, 4, 52, 7, 1, 47, 1, 4, 1, 5, 2]
l2.reverse()
print(l2)
[2, 5, 1, 4, 1, 47, 1, 7, 52, 4, 1]
#课堂练习
# 1, 找到alex的e元素,并打印
l3 = ['alex', 'wusir', ['taibai',99,'ritian'], 20]
print(l3[0][2])
e
# 2, 将wusir变成大写。
l3 = ['alex', 'wusir', ['taibai',99,'ritian'], 20]
l3[1] = l3[1].upper()
print(l3)
['alex', 'WUSIR', ['taibai', 99, 'ritian'], 20]
# 3, 给此列表['taibai',99,'ritian'] 追加一个元素,'文周'
l3 = ['alex', 'wusir', ['taibai',99,'ritian'], 20] l3.append('文周') print(l3)
['alex', 'wusir', ['taibai', 99, 'ritian'], 20, '文周']
# 4,将 'taibai' 首字母大写
l3 = ['alex', 'wusir', ['taibai',99,'ritian'], 20] l3[2][0] = l3[2][0].capitalize() print(l3)
['alex', 'wusir', ['Taibai', 99, 'ritian'], 20]
# 5,将 99 通过数字加1 的方式变成100,并放回原处。
l3 = ['alex', 'wusir', ['taibai',99,'ritian'], 20] l3[2][1] = l3[2][1]+1 print(l3)
['alex', 'wusir', ['taibai', 100, 'ritian'], 20]
#tuple
#元组 只读列表 只允许查询 不能增改查
#应用场景 一些非常重要的数据 不允许修改
#索引
tu1 = ('alex',100,True,[1,2,3],{'name':'太白'},(22,33)) print(tu1[0]) print(tu1[0:2]) print(tu1[::2])
alex ('alex', 100) ('alex', True, {'name': '太白'})
#for 循环
tu1 = ('alex',100,True,[1,2,3],{'name':'太白'},(22,33)) for i in tu1: print(i)
alex 100 True [1, 2, 3] {'name': '太白'} (22, 33)
#index len count
#把每个元素的 索引值打印出来
tu1 = ('alex',100,True,[1,2,3],{'name':'太白'},(22,33)) for i in tu1: print(tu1.index(i))
0 1 2 3 4 5
#元组中的元素不能修改 但是元素中的子元素(元素孙子)可以修改
tu1 = ('alex',100,True,[1,2,3],{'name':'太白'},(22,33)) tu1[3].append('chenwen') print(tu1)
('alex', 100, True, [1, 2, 3, 'chenwen'], {'name': '太白'}, (22, 33))
#range
#范围可控制的可迭代对象 可以类比成 列表
for i in range(0,10):#顾头不顾尾 10不会打印 print(i)
0 1 2 3 4 5 6 7 8 9
for i in range(0,20,2):#20不会打印 print(i)
0 2 4 6 8 10 12 14 16 18
for i in range(10,0,-1):#0不会打印 print(i)
10 9 8 7 6 5 4 3 2 1
#将列表中元素的索引值 逐个输出
#方法一
l1 = ['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天'] for i in range(0,len(l1)): print(i)
0 1 2 3 4 5 6
#方法二
l1 = ['alex', 'alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天'] for i in l1: print(l1.index(i)) #这有一个弊端 如果列表中存在相同的元素 按照元素找索引的话 只会返回第一个元素的索引值
0 0 2 3 4 5 6 7
#实现一个加法运算器
content = input('请输入:') list = content.split('+') i = 0 sum = 0 while i <len(list): sum = sum + int(list[i].strip()) i += 1 print(sum)
请输入:4+4 +89+ 4545 4642