一、上节知识回顾:
1、list:li=[1,2,3,5,"a"]
增加: append:末尾加入==追加
insert :插入,在任意位置,insert(index,"内容”)
extend :迭代着加入,“asc”---------a,s,c[1,2,3]--------a,s,c,1,2,3
删除: pop 按索引删除,有返回值
remove:按元素删除
del :del li[0] del li[1:4] del li(删除整个)
改:li[0]="djshf" li[1:3]="abcd" li=["sdalk",1,2,4,"a"]
查询:按照索引,切片,for while 等都可以查出。
其他方法: count 计数 没有切片
sort 从小到大,正序,sort(reverse=True) 倒序排列
reverse:反转
index 找出元素的索引位置 可以切片
2、元祖。只读,不能更改,儿子不能改,孙子可以改。
可以切片
3、range(4,12)=[4,5,6,7,8.......11]
for i in []:
pay2:xrange
range
pay3:range
二、作业讲解:
1、面试题: 关于切片
li=[1,3,2,'a',4,'b',5,'c'] 通过对li列表的切片形成新的列表l5,l5 = [‘c’] l5=li[-1:]
2、字符串的拼接
# 利用下划线将列表的每一个元素拼接成字符串“alex_eric_rain“ li=["alsex","erric","rain"] 第一种方法:运用join temp="_".join(li) print(temp 第二种方法(非常重要) msg="" is_first=True for item in li: if is_first: tmp=item print(tmp) is_first=False else: tmp="_"+item print(tmp) msg+=tmp print(msg) 第三种方法: li=["alex","eric","rain"] info="{}_{}_{}".format(li[0],li[1],li[2]) print(info) 第四种方法: s="alsex" for i in li[1:3]: s=s+"_"+i print(s)
非常重要的知识点:
将 str——>list 使用 split
将 list——>str 使用 join
li="name,sahd,1231" print(li.split(",")) # ['name', 'sahd', '1231'] l1=['name', 'sahd', '1231'] print(",".join(l1)) #name,sahd,1231
3、利用for循环;
# 6、开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符: # 敏感词列表 li = ["苍老师","东京热",”武藤兰”,”波多野结衣”] # 则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中; # 如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。 info=input("请输入您的评论:") li=["苍老师","东京热","武藤兰","波多野结衣"] new_li=[] for i in li: if li.index(i)!=-1: info=info.replace(i,"***") l1=new_li.append(info) print(new_li)
4、嵌套循环
7,有如下列表li = [1,3,4’,alex’,[3,7,8,’taibai’],5,’ritian’] 循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。 我想要的结果是(用三种方法实现): li=[1,3,4,'alex',[3,7,8,'taibai'],5,'ritian'] 第一种方法:利用判断 for i in range(len(li)): if type(li[i])==list: for j in li[i]: print(j) else: print(li[i]) 第二种方法: for i in range(len(li)): if i==4: for j in li[i]: print(j) else: print(li[i]) 第三种方法:利用列表的添加 new_lit=[] for i in li: if type(i)==list: s=li.index(i) l1=li[0:s] l2=li[(s+1):] new_lit.extend(l1) new_lit.extend(i) new_lit.extend(l2) for j in new_lit: print(j) 第四种方法:利用列表的改 new_lit=[] for i in li: if type(i)==list: s=li.index(i) li[s:s+1]=i for j in li: print(j)
三、今日内容
1、字典
(1)字典是无序的;
(2)数据关联性强
(3)键值对,唯一一个映射的数据类型
(4)字典的键必须是可哈希的(不可变的数据类型;字符串,数字,布尔值,元祖)并且是唯一的
不可哈希的(可变的数据类型:列表,字典,set)
2、增
(1)直接增添 dic["name"]="liu" (如果字典里有,则覆盖)
name={"name":"liu","age":12,"wang":"li"} name["wae"]="tiantain" print(name) #{'name': 'liu', 'age': 12, 'wang': 'li', 'wae': 'tiantain'}
(2) setdefault 有键值对 不做任何改变,没有键值对才添加
name={"name":"liu","age":12,"wang":"li"} name.setdefault("k") #{'name': 'liu', 'age': 12, 'wang': 'li', 'k': None} name.setdefault("k","asd") #{'name': 'liu', 'age': 12, 'wang': 'li', 'k': None} name.setdefault("ds","saji") #{'name': 'liu', 'age': 12, 'wang': 'li', 'k': None, 'ds': 'saji'} print(name)
3、删(1)pop dic.pop("name")
dic.pop("name",None)有返回值
(2)popitem 无返回值 dic.popitem()
name={"name":"liu","age":12,"wang":"li"} print(name.pop("name")) #liu (返回值) print(name) #{'age': 12, 'wang': 'li'} print(name.pop("andj",None)) #None name.popitem() print(name) #{'age': 12}
(3) clear dic.clear()
name={"name":"liu","age":12,"wang":"li"} name.clear() print(name) #{}
(4) del del.dic["name"]
name={"name":"liu","age":12,"wang":"li"} del name["name"] print(name) #{'age': 12, 'wang': 'li'}
4、查
(1)直接查看,通过键 dic["name”]
(2) get dic.get("name",没有) 若没有这个键则返回None(或者自己设置返回值)
name={"name":"liu","age":12,"wang":"li"} print(name["name"]) #liu print(name.get("age")) #12 print(name.get("ashu")) #None(如果没有则返回) print(name.get("sdkfj","jhfue")) #jhfue(如果没有可以设定返回值)
(3)Keys dic.keys()#返回键列表
(4)values dic.values()#返回值列表
(5)items dic.items() #返回键值对
name={"name":"liu","age":12,"wang":"li"} print(name.keys()) print(name.values()) print(name.items())