#习题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)

 

posted on 2019-10-03 10:56  腿短毛不多  阅读(153)  评论(0编辑  收藏  举报