1、昨日内容回顾
自己背
2、作业讲解
#以下作业均为自己自学完成,暂无标准答案 # 作业一: li = ['a大','a二','a三','a四','a五'] # 1)计算列表的长度并输出。 s = len(li) print(s) # 2)列表中追加元素'seven',并输出添加后的列表 li.append('seven') print(li) # 3)请在列表的第1个位置插入元素"Tony,并输出添加后的列表。 li.insert(0,'tony'.capitalize()) print(li) # 4)请修改列表第2个位置的元素为'老三',并输出修改后的列表。 li[2] = '老三'.capitalize() print(li) # 5)请将列表l2=[1,'a'3,4,'heart']的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 l2=[1,'a',3,4,'heart'] li.extend(l2) print(li) # 6)请将字符串s= 'qwert’的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 s = 'qwert' li.extend(s) print(li) # 7)请删除列表中的元素'a三',并输出添加后的列表。 li.pop(2) print(li) # 8)请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表 del li[2:3] print(li) # 9)请删除列表中的第2至4个元素,井输出删除元素后的列表。 del li [2:5] print(li) # 10)请将列表所有得元素反转,并输出反转后的列表 li.reverse() print(li) # 11)请计算出'a大'元素在列表li中出现的次数并输出该次数。 s = li.count('a大') print(s) ''' # 作业二: ''' # 2.写代码,有如下列表,利用切片实现每一个功能。 li= [1,3,2,'a',4,'b',5,'C'] # 1)通过对li列表的切片形成新的列表11,l1 = [1,3,2] l1 = li[0:3] print(l1) # 2)通过对li列表的切片形成新的列表12,12 = ['a'4,'b'] l2 = li[3:6] print(l2) # 3)通过对li列表的切片形成新的列表13,13= [1,2,4,5] l3 = li[0::2] print(l3) # 4)通过对li列表的切片形成新的列表14,14= [3,'a','b','c'] l4 = li[1:len(li):2] print(l4) # 5)通过对li列表的切片形成新的列表15,15= ['c'] l5 = li[-1:] print(l5) # 6)通过对Ii列表的切片形成新的列表16,16= ['b','a',3] l6 = li[-3:-8:-2] print(l6) ''' # 作业三: # 3,写代码,有如下列表,按照要求实现每一个功能。 li = [2,3,'k',['qwe',20,['k1',['tt','3','1']],89],'ab','1'] # 1)将列表lis中的'tt'变成大写(用两种方式)。 li[3][2][1][0] = li[3][2][1][0].upper() print(li) li[3][2][1][0] = 'TT' print(li) # 2)将列表中的数字3变成字符串'100'(用两种方式)。 li[1] = '100' print(li) li[1] = str(li[1]).replace('3','100') print(li) # 3)将列表中的字符串'1'变成数字101 (用两种方式)。 li[-3][-2][-1] = 101 print(li) # 作业四: # 4,请用代码实现: li = ['alex','eric','rain'] # 利用下划线将列表的每-一个元素拼接成字符串"alex_ eric_rain" s = '_'.join(li) print(s)
3、字典 dict
# 数据类型划分:可变数据类型,不可变数据类型
不可变数据类型:元组,bool值,int(本身不可更改,1就是1),str(对ste的任何操作都是形成了一个新的str,原str不可更改)。 可哈希
可变数据类型:list,dict,set。 不可哈希
dict 的 key 必须是不可变数据类型,可哈希
value: 任意数据类型。
dict 优点:二分查找去查询 ,储存大量的关系型数据
特点:3.5之前的版本字典都是无序的,3.6版本以后是有序的
4、字典的增删改查
# 字典的增 dic1 = {'name':'liang','age':21,'hobby':'python'} # 增加,覆盖 dic1['high'] = 170 # 没有键值对的时候增加 print(dic1) dic1['hobby'] = 'run' # 有键值对的时候覆盖 print(dic1) # setdefault :有键值对不做任何改变,没有才添加 dic1.setdefault('weight') # 默认增加键值对,但结果为:'weight':None # dic1.setdefault('weight',130) # 增加键值对结果为:'weight':130 print(dic1)
# 字典的删 dic1 = {'name':'liang','age':21,'hobby':'python'} # PoP:有返回值,按键去删 dic1.pop('age') print(dic1) # 没有键则报错 dic1.pop('weight') print(dic1) # 删除一个不知道有没有的键,若有则显示键值,若没有则显示返回值None(返回值可设置) print(dic1.pop('name',None)) # popitem:随机删除,有返回值,元组里边是删除键值,3.6默认删最后一个。 dic1.popitem() print(dic1) # clear:清空字典 dic1.clear() print(dic1) # del 删除键值对,若没有则报错 del dic1['name'] print(dic1)
# 字典的改 dic1 = {'name':'liang','age':21,'hobby':'python'} # 覆盖就是改的一种 ''' dic1['age'] = 16 ''' # update:覆盖添加 dic2 = {'name':'fan','weight':'70'} dic2.update(dic1) # 没有的添加,有的不改变 print(dic1) print(dic2)
# 字典的查 '''dic1 = {'name':'liang','age':21,'hobby':'python'} print(dic1.keys(),type(dic1.keys())) #字典的键 print(dic1.values()) # 字典的值 print(dic1.items()) # 字典元组里的键值 # 字典的查 keys:字典的键循环: for i in dic1: # 什么都不写默认的是键循环 print(i) for i in dic1.keys(): print(i) # 字典的查 values:字典的值循环 for i in dic1.values(): print(i) # 字典的查items : 打印元组,元组内为键 for i in dic1.items(): print(i) # 字典的查 打印元组,只显示键值 for k,v in dic1.items(): print(k,v) # 直接查键值 v1 = dic1['name'] print(v1) # 直接查键值 未找到报错 v2 = dic1['name2'] print(v2) # 直接查键值 未找到显示你设置的字符,默认为None s = dic1.get('name1','没有这个键') print(s) '''
# 穿插一个面试题'''a,b = 1,2print(a,b) # 一行代码转换a b 的值a = 1b = 2a,b = b,aprint(a,b)# a,b = [1,2],[3,4] 以最小单位为对应对象a,b = [1,2] print(a,b)'''
5、字典的嵌套
# 字典的嵌套 dic = { 'name':['jingwen','xiaoC','liangliang'], 'py9':{ 'time':'2017', 'add':'yima', 'relation':'brother' }, 'age':'18' } # 更改年龄 dic['age'] = 21 print(dic) # 'name'后加一个日天 dic['name'].append('日天') print(dic) #更改'xaioC'为大写 dic['name'][1] = dic['name'][1].upper() print(dic) #对py9增加一个键值对 female:1 dic['py9']['female'] = 1 print(dic)
# 例题:测出字符串里整数的个数,如:sdfasdf123sdf324sdf35 # isalpha用法: '''如果字符串是字母字符串,则返回true,否则返回false, 如果字符串中的所有字符都是字母,那么字符串就是字母。 字符串中至少有一个字符。''' info = input('>>>') for i in info: if i.isalpha(): info = info.replace(i," ") l = info.split() print(len(l))
6、作业:
# 作业 # 1,有如下变量(tu是个元祖),请实现要求的功能。 tu= ("alex",[11,22,{"k1":'V1',"k2":["age","name"],"k3":(11,22,33)},44]) # a.讲述元祖的特性。 # b.请问tu变量中的第一个元素 “alex” 是否可被修改?。 # c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven" 。 # d.请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素“Seven" 。 # 2,字典 dic, dic= {"k1":"v1","k2":"v2","k3":[11,22,33]} #a.请循环输出所有的key #b.请循环输出所有的value. #c.请循环输出所有的key和value. #d.请在字典中添加一个键值对,"k4": "v4",输出添加后的字典。 #e.请在修改字典中“k1” 对应的值为"alex",输出修改后的字典。 #f.请在k3对应的值中追加一个元素44,输出修改后的字典。 #g.请在k3对应的值的第1个位置插入个元素18,输出修改后的字典。 # 3、元素分类. #有如下值 li = [11,22,33,44,55,66,77,88,99,90], # 将所有大于66的值保存至字典的第一个key中。 # 将小于66的值保存至第二个key的值中。 # 即: {'k1': 大于66的所有值列表,'k2':小于66的所有值列表} # 4、输出商品列表,用户输入序号,显示用户选中的商品 # 商品li = ["手机","电脑","鼠标垫","游艇"]要求: # 1,页面显示序号+商品名称,如: # 1 手机 # 2 电脑 # ... ... # 2,用户输入选择的商品序号,然后打印商品名称 # 3,如果用户输入的商品序号有误,则提示输入有误,并重新输入。 # 4,用户输入Q或者q,退出程序。 # 默写内容: # 1)字典的增删改查 # 2)过滤敏感字符代码的默写
来源:https://www.cnblogs.com/mangoorangutan/p/11226011.html