Pythonカリキュラム学習記録_14週間の作業


1.次の関数の定義を完了します.
def makeDict(word_list):
「」「文字列リスト内の個々の異なる文字列をキーワードとし、出現回数が対応する値の辞書を返します.
例えばword_list =
['python', 'algorithm','program','python','program']
辞書を返します{
'python':2, 'algorithm':1, 'program':2
}
"""
#定義を挿入
この関数の定義をmakeDictに保存します.pyで.
注意:Python辞書はキーワードの順序に関心がありません.辞書d 1=
{
'python':2, 'algorithm':1, 'program':2
}とd 2=
{
'algorithm':1,
'python':2,
'program':2
}は等しい.python解釈器の下で試してみます:d 1==d 2?
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

このカードが長い間詰まっていたのは、まずすべてのキー値を遍歴してから、この過程で得たリストを新しい辞書に保存しようと思っていたからですが、このようなトラブルは私が2次元リストで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,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