#习题16:两个长度相同的list,一个里面的做字典的key,一个里面做字典的value,请写个函数实现。
#方法一:
#方法一:
def make_dict(list1,list2): result_dict={} for i in range(len(list1)): if isinstance(list1[i],(list,dict)):#字典的key必须是不可变对象,list和dict要排除 continue else: result_dict[list1[i]]=list2[i] return result_dict a=['b',2.3,(2,3),{2:2},[1,2,3],2+3j,3,"aaaa"] b=[1,2,3,4,5,6,7,8] print(make_dict(a,b))
#方法二:lambda函数依据代码实现,但是作为key的list必须传不可变类型
a=[1,2,3,4,5,6,7,8] b=[[1,2],2.3,(2,3),{2:2},[1,2,3],2+3j,3,"aaaa"] def func(a,b): return dict(map(lambda k,v:(k,v),a,b)) print(func(a,b))
#习题17:统计一个字符串中每一个字母累计出现的次数
#思路:将字母当做字典的key,次数当做字典的value,如果key不在字典中的话将其赋值为1,在的话做累加
import string s="I am a good boy!" for i in s: if i in string.punctuation: s=s.replace(i," ") s=s.split() #print(s) d = {} for i in s: for j in i: if j not in d: d[j]=1 else: d[j]+=1 print(d)