Python课程学习记录_14周作业

  • 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

猜你喜欢

转载自blog.csdn.net/cyanchen666/article/details/80660741