-
1. 完成下列函数的定义:def makeDict(word_list):"""返回字符串列表中以各个不同的字符串为关键字, 出现次数为对应值的字典。例如,如果word_list = ['python', 'algorithm','program','python','program']则返回字典{ 'python':2, 'algorithm':1, 'program':2 }"""
#插入你的定义将该函数的定义存放在makeDict.py中。注:Python字典不关心关键字的顺序。字典d1 = { 'python':2, 'algorithm':1, 'program':2 }和 d2 = { 'algorithm':1, 'python':2, 'program':2 }是相等的。在python解释器下试试看: d1 == d2?def makeDict(word_list): result={} for i in range(len(word_list)): if not result.get(word_list[i]): result[word_list[i]]=1 else: result[word_list[i]]+=1 return result
2. 完成下列函数的定义:def reverseDict(aDict):"""返回字典aDict的逆字典。aDict是形如 { 'python':2, 'algorithm':1, 'program':2 },其逆字典是{2:['program', 'python'], 1:['algorithm']}.要求关键字对应的字符串列表按照(英语)字典序排列。"""#插入你的代码。def reverseDict(aDict): answer={} temp=[] for i in aDict: if not answer.get(aDict[i]): a=[] a.append(i) answer[aDict[i]]=a else: temp=answer[aDict[i]] temp.append(i) temp.sort() answer[aDict[i]]=temp return answer
这个卡了我很久的原因是因为我一直想着要先把所有键值对遍历完,再把这个过程中得到的列表存储到新的字典中,但是这样带来的麻烦是我要用一个二维列表来存储value,并且列表的搜索只能通过索引,所以很不方便。
将函数的定义存放在reverseDict.py中。下面放一个遍历字典取值的参考博客:点击打开链接
3. 完成下列函数定义:def keysWithValue(aDict, val):"""函数返回字典aDict中值为val的所有关键字构成的列表,并按照从小到大顺序排列。如果aDict中任何关键字的值都不是val,则返回空列表。aDict的关键字和值都是整数。例如,aDict是形如{2:3, 5:4, 4:4, 12:10}的字典,val是整数4,则keysWithValue(aDict, val)返回[4, 5]。"""#插入你的代码def keysWithValue(aDict, val): result=[] for i in aDict: if(aDict[i] == val): result.append(i) result.sort() return result
将本函数定义存在文件keysWithValue.py中。4. 完成下列函数定义:def runningSum(aList):"""返回整数列表aList各个非空前缀子列表元素之和构成的列表。例如,aList = [1,2,2,1,3], 则其非空前缀子列表为[1], [1,2], [1,2,2], [1,2,2,1], [1,2,2,1,3].因此对本例输入函数返回[1,3,5,6,9]。"""def runningSum(aList): allList=[] for i in range(len(aList)): List=[] for j in range(i+1): List.append(aList[j]) allList.append(List) Sum=[] for i in range(len(allList)): #print(allList[i]) if type(allList[i]) == list: sum=0 for k in allList[i]: sum+=k #print(sum) Sum.append(sum) return Sum
Python课程学习记录_14周作业
最新推荐文章于 2024-07-18 04:51:56 发布