python基础数据类型二(list增删改查,嵌套,tuple,range)
列表称之为容器型数据类型
# l1=['wusir','alex',True,'laonanhai','ritian','taibai']
按照索引取值
# print(l1[0])
# print(l1[-1])
按照切片取值
# print(l1[:2])
# print(l1[::2])
# print(l1[-1::-2])
增
# l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
#append 追加
# l1.append('小职')
# print(l1)
# l1.append([1,2,666])
# print(l1)
# l1.append(666)
# print(l1)
# 添加新员工信息表
# name_list=['alex','wusir','laonanhai']
# while True:
# username=input('请输入您的信息:Q或者q退出').strip()
# if username.upper()=='Q':break #用break要谨慎,不能打破外循环
# name_list.append(username)
# print('新员工%s添加成功' % username)
# print(name_list)
# insert 插入 指定位置插入
# l1.insert(2,'666')
# print(l1)
#extend 迭代着追加 (以最小单位增加)
# l1.extend('123')
# print(l1)
# l1.extend([1,2,3,'123'])
# print(l1)
删
# l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
# pop 按照索引去删除,有返回值。
# print(l1.pop(0)) #wusir
# print(l1)
#remove 按照元素删除
# print(l1.remove(True)) #None
# print(l1)
#clear 清空列表
# l1.clear()
# print(l1) # []
# del
'''
1.在内存级别删除列表
del l1
print(l1)
2.按照索引删除
del l1[1]
print(l1)
3.切片删除加步长
del l1(:-2)
'''
# del l1
# print(l1)
# del l1[2]
# print(l1)
# del l1[:-1]
# print(l1)
# del l1[::-2] #['wusir', 'alex', 'ritian']
# print(l1)
# del l1[-1:1:-2]#['wusir', True, 'alex', 'ritian']结果只能正着显示。
# print(l1)
改
# l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
# 1.按照索引去改
# l1[1]='哪吒'
# print(l1)
# l1[-1]='男神'
# print(l1)
# 2.按照切片去改,现将切片区域的内容删除,再迭代着增加。
# l1[0:3]='666'
# print(l1)
# l1[:3]=[1,2,3,123]
# print(l1)
查
# 按照索引切片查
# l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai']
#for循环
# for i in l1:
# print(i)
# 其他操作方法
# len个数
# con=len(l1)
# print(con)
# count 次数
# print(l1.count('wusir'))
#index 通过元素找索引,可切片,find不能在列表和元祖中使用。
# print(l1.index('taibai',4))
# l2=[1,5,6,3,4,8,9,2,0,7]
# sort ()从小到大,正序排序
# l2.sort()
# print(l2)
# sort(reverse=True) 从大到小,倒序
# l2.sort(reverse=True)
# print(l2)
#翻转 reverse
# l2.reverse()
# print(l2)
***嵌套
# l1 = ['wusir', 'alex', [99, ' taibai', '98'], 21]
# 1,将wusir变成全部的大写。
# l1[0]=l1[0].upper()
# print(l1)
# 2,将‘taibai'变成首字母大写,其他字母小写,放回原处。#注意用strip()去掉字符串两端的空格
# l1[2][1]=l1[2][1].strip().capitalize()
# print(l1)
# 3,用数字的相加将99 变成 字符串的 '100'.
# l1[2][0]=str(l1[2][0]+1)
# print(l1)
# 4,字符串的'98' 变成数字的100.
# l1[2][2]=int(l1[2][2])+2
# print(l1)
# 打印出l1 = [22, 33, 44, 55, 66, 77, 88, 99]的索引
# l1 = [22, 33, 44, 55, 66, 77, 88, 99]
# for i in range(len(l1)):
# print(i)
# count=0
# while count<len(l1):
# print(count)
# count+=1
# 打印出l1中的每个字符。
# l1 = ['wusir', 'alex', [99, ' taibai', '98'], 21]
# for i in l1:
# if type(i) == list:
# for j in i:
# print(j)
# else:
# print(i)
元祖,只读列表,不能增删改,只能查。
索引,切片,步长
tu=(11,22,33,44,55)
print(tu[1])
print(tu[::2])
print(tu[::-2]) #55,33,11
for i in tu:
print(i)
index len count
tu1=('wusir','alex',[22,66,'taibai'])
tu1[-1].append('女神')#在最后一个对象里添加一个元素女神
print(tu1)
l1=[22,33]
l1.append(tu1) #元祖整体作为一个对象追加过去。
print(l1)
l1.clear() #清空内容
print(l1)
tu1.clear() #不能清除
print(tu1)
del tu1 #从内存级别删除
print(tu1)
l1.append(tu1)# 没有返回值,若l2=l1.append(tu1),则l2的值为None
print(l1)
l1.clear ()
print(l1)
range
当做自定义的数字范围列表,
满足顾头不顾腚,可以加步长,常和for 循环语句一块使用
for i in range(0,101):#[0,1,2,....100]
print(i)
for i in range(11):#[0,1,2,...10]
print(i)
)for i in range(0,101,2):
print(i)
for i in range(10,0,-2):
print(i)
打印出l1 = [22, 33, 44, 55, 66, 77, 88, 99]的索引
l1 = [22, 33, 44, 55, 66, 77, 88, 99]
for i in l1:
print(l1.index(i))
for i in range(len(l1)):#相当于(0,8)
print(i)
打印出l1中的每个字符。
l1 = ['wusir', 'alex', [99, ' taibai', '98'], 21]
for i in l1:
if type(i) == list:# [99, ' taibai', '98']是一个列表。
for j in i:
print(j)
else:
print(i)
task
1,写代码,有如下列表,按照要求实现每一个功能
li = ['alex', 'wusir', 'ritian', 'barry', 'wenzhou','eric'] 1)计算列表的长度并输出 print(len(li)) 2)列表中追加元素’seven’,并输出添加后的列表 li.append('seven') print(li) 3)请在列表的第1个位置插入元素’Tony’,并输出添加后的列表 li.insert(0,'Tony') print(li) 4)请修改列表第2个位置的元素为’Kelly’,并输出修改后的列表 li[1]='Kelly' print(li) 5)请将列表l2=[1,’a’,3,4,’heart’]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 li.extend([1,' a' ,3,4,' heart' ]) print(li) 6)请将字符串s = ‘qwert’的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 li.extend('qwert') print(li) 7)请删除列表中的元素’eric’,并输出添加后的列表 #三种方法 li.pop(-1) li.remove('eric') del li[-1] print(li) 8)请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表 li.pop(1)#加上这句话会多删除一次第二个元素。 print(li.pop(1)) print(li) 9)请删除列表中的第2至4个元素,并输出删除元素后的列表 del li[1:4] print(li) 10)请将列表所有得元素反转,并输出反转后的列表 li.reverse() print(li) 11)请计算出‘alex’元素在列表li中出现的次数,并输出该次数。 print(li.count('alex'))
2,写代码,有如下列表,利用切片实现每一个功能
li = [1, 3, 2, 'a', 4, 'b', 5,'c'] 1)通过对li列表的切片形成新的列表l1,l1 = [1,3,2] print(li[:3]) 2)通过对li列表的切片形成新的列表l2,l2 = [’a’,4,’b’] print(li[3:6]) 3)通过对li列表的切片形成新的列表l3,l3 = [’1,2,4,5] print(li[::2]) 4)通过对li列表的切片形成新的列表l4,l4 = [3,’a’,’b’] print(li[1:6:2])#li[1:6:2]也可以 5)通过对li列表的切片形成新的列表l5,l5 = [‘c’]#小陷阱,切片切出来的数据类型和原来的数据类型相同。 print(li[-1:]) 6)通过对li列表的切片形成新的列表l6,l6 = [‘b’,’a’,3] print(li[-3::-#])
3,写代码,有如下列表,按照要求实现每一个功能。
lis = [2, 3, 'k', ['qwe', 20, ['k1', ['tt', 3, '1']], 89], 'ab', 'adv'] 1)将列表lis中的’tt’变成大写(用两种方式)。 lis[3][2][1][0]='TT' lis[3][2][1][0]=lis[3][2][1][0].upper() print(lis)
2)将列表中的数字3变成字符串’100’(用两种方式)。
lis[1]='100'
lis[3][2][1][1]='100'
print(lis)
lis[1]=str(lis[1]+97)
lis[3][2][1][1]=str(lis[3][2][1][1]+97)
print(lis)
3)将列表中的字符串’1’变成数字101(用两种方式)。
lis[3][2][1][2]=101
print(lis)
lis[3][2][1][2]=int(lis[3][2][1][2])+100
print(lis)
4,请用代码实现:
li = ['alex', 'eric', 'rain']
利用下划线将列表的每一个元素拼接成字符串"alex_eric_rain"
print('_'.join(li))
5,查找列表li中的元素,移除每个元素的空格,并找出以’A’或者’a’开头,
并以’c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
li = ['TaiBai ', 'alexC', 'AbC ', 'egon', ' riTiAn', 'WuSir', ' aqc']
l = []
for i in li:
if i.strip().capitalize()[0]=='A' and i.strip()[-1]=='c':#多打了一个空格' A'
l.append(i)
print(l)
6、开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
敏感词列表 li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中;如果用户输入的内容没有敏感词汇,
则直接添加到上述的列表中。
li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
comment=input('请输入你的评论:')
l = []
for i in li:
if i in comment:
comment=comment.replace(i,'***')
l.append(comment)#不能放到if 语句下面,否则有几个敏感词汇就打印几次
print(l)
7,有如下列表
li = [1, 3, 4, 'alex', [3, 7, 8, 'TaiBai'], 5,'RiTiAn']
循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。
我想要的结果是:
1
3
4
‘aaa’
3
7,
8
‘bbb’
5
li = [1, 3, 4, 'aaa', [3, 7, 8, 'bbb'], 5]
li[4][3]=li[4][3].lower()
li[-1]=li[-1].lower()
for i in li:
if type(i)==list:
for j in i:
print(j)
else:
print(i)
8,将列表的增删改查不同的方法全部写出来,
例如:增:有三种,append:在后面添加。Insert按照索引添加,expend:迭代着添加。
pop 按照索引去删除,有返回值 remove 按照元素删除 clear 清空列表 1.在内存级别删除列表 del l1 print(l1) 2.按照索引删除 del l1[1] print(l1) 3.切片删除加步长 del l1(:-2) 改 1.按照索引去改 # l1[1]='哪吒' 2.按照切片去改,现将切片区域的内容删除,再迭代着增加。 # l1[0:3]='666 查 按照索引,切片查 l1 = ['wusir', True, 'alex', 'laonanhai', 'ritian', 'taibai'] for循环 for i in l1: print(i)