一、列表list
1、列表的新增元素(三种方法)
>>>第1种方法(append 增加到最后):
li = ['Peter','Henrry','Wode','鸭子','xiaoxin'] li.append('小鸡') li.append(1) print(li)
例:新增名单(重复输入名单,当输入Q时停止输入)
li = ['Peter','Henrry','Wode','鸭子','xiaoxin'] while 1: l1 = input('请输入姓名:') if l1.upper() == 'Q': break li.append(l1) print(li)
>>>第2种方法(insert 插入到指定位置):
li = ['Peter','Henrry','Wode','鸭子','xiaoxin'] li.insert(4,'小鸡') print(li)
>>>第3种方法(extend 迭代插入(分解元素插入最后)-->>int不能迭代,列表可以):
li = ['Peter','Henrry','Wode','鸭子','xiaoxin'] li.extend('小王') li.extend([1,2,3]) #数字列表直接分解到最小元素 print(li)
2、列表的删除元素(四种方法)
>>>第1种方法:(pop 按照索引删除元素,注:pop有返回值,可以看删除了什么元素,不填索引,默认删除最后一个元素)
li = ['Peter','Henrry','Wode','鸭子','xiaoxin'] name = li.pop(4) name = li.pop() # 默认删除最后一个元素 print(name,li)
>>>第2种方法:(remove 按照元素去删除)
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] li.remove('鸭子') print(li)
>>>第3种方法:(clear 清空列表,剩下一个空列表)
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] li.clear() print(li)
>>>第4种方法:(del删除列表)
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] del li print(li)
#衍生 切片删除
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] del li[0:3] print(li)
3、列表的修改(2种方法)
>>>第1种方法:(根据索引进行修改)
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] li[4] = '小凯' print(li)
>>>第2种方法:(根据切片修改(修改为最小元素))
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] li[0:2] = '小哥哥' print(li)
衍生(根据列表修改,修改为列表元素)
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] li[0:2] = ['小鸡','大鹅','1'] print(li)
4、查看列表元素
>>>1、利用for循环:
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] for i in li: print(i)
>>>2、切片查看:
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] print(li[0:2])
>>>3、公共方法
1、查看元素数量
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] l = len(li) print(l)
2、查看元素出现次数
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] num = li.count('鸭子') print(num)
3、查看元素索引--->index,查无报错
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] print(li.index('鸭子'))
5、列表的排序
li = [2,1,4,6,7,8,9,] li.sort() #默认从小到大 print(li) li.sort(reverse=True) #从大到小 print(li) li.reverse() #元素翻转 print(li)
6、列表的嵌套
li = ['liming','大王','萧山水','鸭子',['peter','alex',88],23] print(li[1][1]) #找到山 s = li[0].capitalize() #找到第一个元素,首字母变大写 li[0] = s print(li) li[3]=li[3].replace('子','哥哥') #找到鸭子的子改成哥哥 print(li) li[4][0] =li[4][0].upper() #找到peter进行大写之后放回原处 print(li) s = li[4][2] + 12 #找到88变成100,放回去(方法1) li[4][2] = s print(li) li[4][2] = 100 #找到88变成100,放回去(方法2) print(li)
二、元组-->只读列表,可循环查询,可切片(元组元素不能改,元素列表可能可以改)
tu = [1,2,3,[1,2,3,'xiaomao'],'鸭子','peter'] print(tu[2]) #可读 print(tu[2:4]) #可切片 for i in tu: #可循环 print(i) tu[3][3] = tu[3][3].upper() #可改元祖中列表的元素 print(tu) tu[3].append('小鸡') #元祖中列表增加元素 print(tu)
1、可迭代 join
s = 'peter' s1 = '~'.join(s) #可迭代(p~e~t~e~r),int 跟bool 值不可作为迭代元素 print(s1)
2、列表---> 字符串
li = ['Peter', 'Henrry', 'Wode', '鸭子', 'xiaoxin'] s = '/'.join(li) print(s)
3、range 数字列表
for i in range(2,101): #自定义数字顺序长度 print(i) for i in range(10): #自定义数字长度 print(i) for i in range(1,10,2): #自定义数字、步长 print(i) for i in range(10,0,-1): #逆序 print(i) for i in range(0,10,-1): #不报错不输出 print(i)
三、作业题
1、输出列表各个元素,遇到子列表照样照样输出子列表元素
#方法1:
li =[1,2,3,[1,2,3,'xiaomao'],'鸭子','peter'] for i in li: if type(i) == list: for k in i: print(k) else: print(i)
#方法2:
li =[1,2,3,[1,2,3,'xiaomao'],'鸭子','peter'] for i in range(len(li)): if type(li[i]) == list: for j in li[i]: print(j) else:print(li[i])
2、查找列表li中的元素,移除每个元素的空格,并找出以’A’或者’a’开头,并以’c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
#方法1:
li = ['taibai ','alexC','AbC ','egon',' Ritian',' Wusir',' aqc'] b=[] for i in li: s=i.strip() if (s.startswith("A")or s.startswith("a"))and s.endswith("c"): b.append(s) for x in b: print(x)
#方法2
li = ['taibai ','alexC','AbC ','egon',' Ritian',' Wusir',' aqc'] b=[] for i in li: s=i.strip() if s[0].upper() == 'A' and s[-1] == 'c': b.append(s) for x in b: print(x)
3、开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
#敏感词列表 li = ["苍老师","东京热",”武藤兰”,”波多野结衣”]
# 则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中;
# 如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。
li=["苍老师","东京热","武藤兰","波多野结衣"] new_li= [] info = input("评论") # 苍老师,东京热 法律框架第三 for i in li: if i in info: l = len(i) info=info.replace(i,'*'*l) new_li.append(info) print(new_li)