Python-習題40:辞書、かわいい辞書

4511 ワード

次に、このような容器をマスターすると、超クールな能力を持つことになるので、頭を悩ませるもう一つの容器型データ構造を教えてあげます.これは最も役に立つ容器です:辞書(dictionary).
Pythonはこのデータ型を「dict」と呼び、ある言語では「hash」と呼ばれている.この2つの名前は私が使いますが、これは重要ではありません.重要なのはリストとの違いです.リストに対してこのようなことをすることができます
>>> things = ['a','b','c','d']
>>> print(things[1])
b
>>> things[1] = 'z'
>>> print(things[1])
z
>>> print(things)
['a', 'z', 'c', 'd']
>>> 

リストのインデックスとして数値を使用できます.つまり、リストの要素を数値で見つけることができます.そして
dict
数字だけでなく、何でも要素を見つけることができます.はい、辞書は1つのものと別のものを関連付けることができます.そのタイプが何であれ、見てみましょう.
>>> stuff = {'name':'Zed','age':36,'height':6*12+2}
>>> print(stuff['name'])
Zed
>>> print(stuff['age'])
36
>>> print(stuff['height'])
74
>>> stuff['city'] = "San Francisco"
>>> print(stuff['city'])
San Francisco
>>> 

数字のほかに文字列で辞書から取得することもできます
stuff
を選択すると、文字列で辞書に要素を追加することもできます.もちろん文字列だけでなく、このようなこともできます.
>>> stuff[1] = "Wow"
>>> stuff[2] = "Neato"
>>> print(stuff[1])
Wow
>>> print(stuff[2])
Neato
>>> print(stuff)
{'name': 'Zed', 'age': 36, 'height': 74, 'city': 'San Francisco', 1: 'Wow', 2: 'Neato'}
>>> 

ここでは2つの数字を使いました.実は私は何でも使えますが、そう言うのは正確ではありませんが、先にそう理解すればいいです.
もちろん、物を入れるしかない辞書は面白くありません.だから、delというキーワードを使う方法もあります.
>>> del stuff['city']
>>> del stuff[1]
>>> del stuff[2]
>>> stuff
{'name': 'Zed', 'age': 36, 'height': 74}
>>> 

次に私たちは練習をしなければなりません.あなたは非常に注意しなければなりません.私はあなたにこの練習を書いて、それから何をしたのか理解してみてください.この練習はとてもおもしろくて、終わったらあなたはおおらかな感じがするかもしれません.
cities = {'CA':'San Francisco','MI':'Detroit','FL':'Jacksonville'}

cities['NY'] = 'New York'
cities['OR'] = 'Portland'

def find_city(themap,state):
    if state in themap:
        return themap[state]
    else:
        return "Not found."

# ok pay attention!
cities['_find'] = find_city

while True:
    state = input("State?(ENTER to quit)> ")
    if not state:break
    
    # this line is the most important ever! study!
    city_found = cities['_find'](cities,state)
    print(city_found)

加点練習問題.
  • Pythonドキュメントでdictionary(dicts,dictとも呼ばれる)に関する内容を見つけ、dictに対してより多くの操作を学ぶ.
  • dictではできないことを見つけます.例えば重要なのはdictの内容が無秩序であることです.本当にそうかどうかをチェックしてみてください.
  • for-loopをdictに実行してみて、for-loopでdictのitems()関数を使って、どのような結果が出るか見てみましょう.

  • 辞書の要素を削除します.
    dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
    
    del dict['Name'] #     'Name'
    dict.clear()     #     
    del dict         #     
    
    print ("dict['Age']: ", dict['Age'])
    print ("dict['School']: ", dict['School'])

    辞書キーの機能:
    1)同じキーが2回出現することは許されない.作成時に同じキーが2回割り当てられた場合、次の例のように次の値が記憶されます.
    dict = {'name':'Mahua','Age':8,'name':'Tudou'}
    
    print("dict['name']: ",dict["name"])
    
    #     :
    dict['name']: Tudou

    2)キーは可変でなければならないので、数字、文字列、またはメタグループで機能し、リストでは機能しません.
    ディクショナリの組み込み関数とメソッド:
    1.len(dict):辞書要素の個数、すなわちキーの総数を計算する
    2.str(dict):印刷可能な文字列で辞書を出力する
    3.type(variable):入力した変数タイプを返し、変数タイプが辞書であれば辞書タイプを返します.
    python辞書には、次の組み込み方法が含まれています.
    1.radiansdict.clear():辞書内のすべての要素を削除
    2.radiansdict.copy():辞書の浅いコピーを返します.
    3.radiansdict.fromkeys():新しい辞書を作成し、シーケンスseqの要素で辞書のキーを作成します.valは辞書のすべてのキーに対応する初期値です.
    4.radiansdict.get(key,default=None):指定したキーの値を返します.値が辞書でdefault値を返さない場合は
    5.key in dict:キーが辞書dictでtrueを返す場合、falseを返します.
    6.radiansdict.items():遍歴可能な(キー、値)メタグループ配列をリストで返す
    7.radiansdict.keys():辞書のすべてのキーをリストで返します.
    8.radiansdict.setdefault(key,default=None):get()と似ていますが、キーが辞書に存在しない場合はキーが追加され、値がdefaultに設定されます.
    9.radiansdict.update(dict 2):辞書dict 2のキー/値ペアをdictに更新
    10.radiansdict.values():辞書のすべての値をリストで返します.
    11.pop(key[,default]):辞書で指定されたキーキーに対応する値を削除し、削除された値を返します.key値は指定する必要があります.そうでない場合はdefault値を返します.
    12.popitem():辞書のキーと値のペアをランダムに返して削除します(一般的に末尾のペアを削除します).