Python3 初心者向け問題集003:辞書

Python問題集

問003.

答えと解説は下にあります。
問題番号をクリックすると、答えに飛びます。

(1)
keyを英単語,valueを日本語訳として,次に挙げる英単語と日本語訳をそれぞれ対応させた辞書を出力してください。

apple – りんご orange – みかん
banana – バナナ grape – ぶどう

(2)
(1)の辞書を用いて、grapeの日本語訳を出力してください。

(3)
(1)の辞書のkeyに「orange」「orangE」がそれぞれ存在するか判定してください。また、(1)の辞書のvalueに「ばなな」「バナナ」がそれぞれ存在するか判定してください。存在すればTrue,存在しないならFalseを返してください。

(4)
(1)の辞書の「orange」の値を「みかん」から「オレンジ」に変更して辞書を出力してください。

(5)
(1)の辞書に「水 – water」を追加して辞書を出力してください。

(6)
(1)の辞書から「banana – バナナ」の要素を削除した辞書を出力してください。さらに、削除した要素のvalueも出力してください。

(7)
age1 = {‘まつだ’:20, ‘すずき’:29, ‘わたべ’:17, ‘やまだ’:25}
age2 = {‘やまぐち’:15, ‘まつだ’:30, ‘いちかわ’:21}
という2つの辞書があります。age1にage2のすべての要素を追加して辞書age1を出力してください。重複するkeyがある場合は、そのkeyの値を上書きすること。

(8)
(7)に続いて、age1のkeyのみを五十音順に並べたリストname_sortedを作成して出力してください。

(9)
(7)に続いて、age1のvalueのみを昇順に並べたリストage_sortedを作成して出力してください。

(10)
(7)に続いて、age1のkeyを五十音に並べ、keyとvalueの両方を取り出したリストitems_sortedを作成して出力してください。

答えと解説は下にあります。
問題番号をクリックすると、答えに飛びます。

答003.

(1)の答え

keyを英単語,valueを日本語訳として,次に挙げる英単語と日本語訳をそれぞれ対応させた辞書fruitsを出力してください。

apple – りんご orange – みかん
banana – バナナ grape – ぶどう

#解答例1
fruits = {"apple":"りんご","orange":"みかん","banana":"バナナ","grape":"ぶどう"}
print(fruits)

#解答例2
fruits = dict(apple='りんご', orange='みかん', banana='バナナ', grape='ぶどう')
print(fruits)

#解答例3 (zip関数を用いた場合)
english = ['apple','orange','banana','grape']
japanese = ['りんご','みかん','バナナ','ぶどう']
fruits = dict(zip(english,japanese))
print(fruits)
#出力結果
{'apple': 'りんご', 'orange': 'みかん', 'banana': 'バナナ', 'grape': 'ぶどう'}

Pythonの辞書は、
{ } 中カッコ
を用いて作成します。

“apple”, “orange”などは
key(キー)
と呼ばれ、リストのインデックス値に相当します。

一方、”りんご”, “みかん”などは
value(値)
といいます。

dict( キー = 値 , … )

で辞書を作成することもできます。
この際、キーは文字列でもクオーテーション(” ” や ‘ ‘)をつける必要はありません。

(2)の答え

(1)の辞書を用いて、grapeの日本語訳を出力してください。

#解答例1
print(fruits['grape'])

#解答例2
print(fruits.get('grape'))
#出力結果
ぶどう

辞書名 [ キー ]

で、辞書のkeyの値を取得できます。

ただし、存在しないkeyを指定するとエラーになります。

辞書名 . get ( キー )

でも、辞書のkeyの値を取得できます。

ただし、存在しないkeyを指定すると”None”が返されます。

(3)の答え

(1)の辞書のkeyに「orange」「orangE」がそれぞれ存在するか判定してください。また、(1)の辞書のvalueに「ばなな」「バナナ」がそれぞれ存在するか判定してください。存在すればTrue,存在しないならFalseを返してください。

#解答例
print('orange' in fruits)
print('orangE' in fruits)
print('ばなな' in fruits.values())
print('バナナ' in fruits.values())
#出力結果
True
False
False
True

キー . in 辞書名

で、指定したkeyが辞書内にあるかを調べられます。
存在する  → True
存在しない → False
を返します。

辞書名 . values ()

で、辞書の値をすべて取り出せます。

なのでこのメソッドを利用すれば、値で検索することが可能になります。

(4)の答え

(1)の辞書の「orange」の値を「みかん」から「オレンジ」に変更して辞書を出力してください。

#解答例
fruits['orange'] = 'オレンジ'
print(fruits)
#出力結果
{'apple': 'りんご', 'orange': 'オレンジ', 'banana': 'バナナ', 'grape': 'ぶどう'}

辞書名 [ キー ] = 値

で、辞書の要素を上書きできます。

存在しないkeyを指定すると、辞書に要素が追加できます。

(5)の答え

(1)の辞書に「水 – water」を追加して、辞書を出力してください。

#解答例
fruits['水'] = 'water'
print(fruits)
#出力結果
{'apple': 'りんご', 'orange': 'オレンジ', 'banana': 'バナナ', 'grape': 'ぶどう', '水': 'water'}

辞書名 [ キー ] = 値

で、辞書の要素を上書きできます。

存在しないkeyを指定すると、辞書に要素が追加できます。

(6)の答え

(1)の辞書から「banana – バナナ」の要素を削除した辞書を出力してください。さらに、削除した要素のvalueも出力してください。

#解答例
popped = fruits.pop('banana')
print(fruits)
print(popped)
#出力結果
{'apple': 'りんご', 'orange': 'オレンジ', 'grape': 'ぶどう', '水': 'water'}
バナナ

辞書名 . pop ( キー )

で、辞書から要素を削除できます。
また、削除した要素の値が返されます。

del 辞書名[ キー ] , …

でも辞書から要素を削除できますが、返り値はありません。

(7)の答え

age1 = {‘まつだ’:20, ‘すずき’:29, ‘わたべ’:17, ‘やまだ’:25}
age2 = {‘やまぐち’:15, ‘まつだ’:30, ‘いちかわ’:21}
という2つの辞書があります。age1にage2のすべての要素を追加して辞書age1を出力してください。重複するkeyがある場合は、そのkeyの値を上書きすること。

#解答例
age1 = {'まつだ':20, 'すずき':29, 'わたべ':17, 'やまだ':25}
age2 = {'やまぐち':15, 'まつだ':30, 'いちかわ':21}
age1.update(age2)
print(age1)
#出力結果
{'まつだ': 30, 'すずき': 29, 'わたべ': 17, 'やまだ': 25, 'やまぐち': 15, 'いちかわ': 21}

辞書名 . update( 追加する辞書 )

で、既にある辞書に別の辞書の要素を追加できます。

重複するkeyがあるときは、そのkeyの値は上書きされます。

(8)の答え

(7)に続いて、age1のkeyのみを五十音順に並べたリストname_sortedを作成して出力してください。

#解答例
name_sorted = sorted(age1.keys())
print(name_sorted)
#出力結果
['いちかわ', 'すずき', 'まつだ', 'やまぐち', 'やまだ', 'わたべ']

《復習》sorted ( リスト名 )

で、リストの要素を昇順に並べ替えたものを返します。
sortedでは、元のリストは変更されません。

辞書名 . keys ()

で、辞書のkeyを全てリストとして取り出せます。
これを利用しましょう。

(9)の答え

(7)に続いて、age1のvalueのみを昇順に並べたリストage_sortedを作成して出力してください。

#解答例
age_sorted = sorted(age1.values())
print(age_sorted)
#出力結果
[15, 17, 21, 25, 29, 30]
(10)の答え

(7)に続いて、age1のkeyを五十音に並べ、keyとvalueの両方を取り出したリストitems_sortedを作成して出力してください。

#解答例
items_sorted = sorted(age1.items())
print(items_sorted)
#出力結果
[('いちかわ', 21), ('すずき', 29), ('まつだ', 30), ('やまぐち', 15), ('やまだ', 25), ('わたべ', 17)]

辞書名 . items ()

で、辞書の要素各々のkeyとvalueをタプルに格納したリストが返されます。

《イメージ》
{ key1:value1, key2:value2 }
⇒ [ (key1, value1), (key2, value2) ]

※万が一、問題・解答・解説に不備がありましたら、
お問い合わせまたはTwitterで報告してください。

記事への意見・感想はコチラ