Pythonで一部の13-辞書 - socratica [マイノート]とのpythonを学びます

免責事項:この記事はブロガーオリジナル記事ですが、許可ブロガーなく再生してはなりません。https://blog.csdn.net/sinat_34611224/article/details/84957815

レッスン15

前書き

コンピュータサイエンスでは、連想配列(連想配列)と呼ばれるデータ構造は、それがマッピング(地図)行っているでしょうがあります。Pythonで、このデータ構造は、辞書(辞書)として定義されます。あなたのデータは、キーと値にする必要がある場合には(キー:入力-map->値:出力)フォーマットするとき、あなたは辞書を必要としています。

新しい辞書を作成します。

我々はFriendFaceと呼ばれる新しいソーシャル・ネットワーキング・サイトを構築するとします。私たちは、ユーザ名、プロファイル、言語、登録の時間と場所を含む各新規ユーザ登録に関連する情報を収集します。そして、そのようなデータは、それに対処する方法をPythonの?

# FriendFace Post
# User_id = 209
# message = "D5 E4 F4 C5 G3"
# language = "English"
# datetime = "20181212"
# location = (44.590533,-104.715566)
    
# we can use a single object to store all of this date
post = {"user_id":209, "message":"D5 E4 F4 C5 G3", "language":"English", "datetime":"20181212", "location":(44.590533,-104.715566)} # format:{"key":"value"...}

私たちは今、キー5が含まれているの(マッピング)の辞書を作成します。あなたがマップとしてそれを扱う場合には、5つの入力(キー)、5つの出力(出力)に対応します。キーとデータ型の値は、すべてのデータタプル型等であってもよいことに留意されたいです。

type(post) 
# if you use the type function, you will find post belongs to "dict"
dict

これは、我々は、辞書dictの建設を使用するのpython3を使用しているこのセクションに注意を払うことができます。次に、我々は別のFriendFaceを構築するためのdictポストの情報を使用します。

# This time, we use dict.
post2 = dict(message="SS Cotopaxi", language="English")
    
# We can see this made a dictionary
print(post2)
{'message': 'SS Cotopaxi', 'language': 'English'}
# We add additional pieces of data by using brackets.
post2["user_id"] = 209
post2["datetime"] = "20181213"
print(post2)
{'message': 'SS Cotopaxi', 'language': 'English', 'user_id': 209, 'datetime': '20181213'}

この実験から、我々は2件のウェイの情報が辞書に追加されて見ることができます:最初のアプローチを、鍵は引用符は必要ありません。第二のアプローチは、括弧や引用符の使用が規定されています。

辞書内のデータへのアクセス

# To see the message from the first post, use the key name "message"
print(post["message"])
D5 E4 F4 C5 G3
 # Try to get a info. which is not included by post2
print(post2['location'])
---------------------------------------------------------------------------

KeyError                                  Traceback (most recent call last)

<ipython-input-6-840c4f5feede> in <module>()
----> 1 print(post2['location'])

KeyError: 'location'

私たちは、場所がキーPOST2で定義されていない、でしょう、それは間違って行くでしょう。だから、どのようにこれが起こる避けるために?[ヒント:単一引用符または二重引用符をすることができます。]我々は2つの方法を提供します。

 # First, to check if the key is in the dictionary
if "location" in post2:
     print(post2['location'])
else:
     print("The post does not contain a location value.")
The post does not contain a location value.
# Second, try and retrieve the value, but handle the possibility of a KeyError
try:
    print(post2['location'])
except KeyError:
    print("The post does not contain a location value.")
The post does not contain a location value.

もう一つの方法は、データ・ディクショナリを取得するために、我々はそれを見つけるために、ヘルプを())(DIRを使用します。

dir(post2)
['__class__',
 '__contains__',
 '__delattr__',
 '__delitem__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__getitem__',
 '__gt__',
 '__hash__',
 '__init__',
 '__init_subclass__',
 '__iter__',
 '__le__',
 '__len__',
 '__lt__',
 '__ne__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__setattr__',
 '__setitem__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 'clear',
 'copy',
 'fromkeys',
 'get',
 'items',
 'keys',
 'pop',
 'popitem',
 'setdefault',
 'update',
 'values']

私たちは、それが何をするのか確認するために)(助けを借りて、この方法を「取得」を見つけることができます:

help(post2.get)
Help on built-in function get:

get(...) method of builtins.dict instance
    D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None.

()辞書にキーと値のペアであるべきでない場合は、デフォルト値を指定することができ、対応するキーの値を取得しようとすることができます。ここでは、POST2の場所に値を追加するには、このメソッドを使用します。

loc = post2.get('location', None)
print(loc) 
None

その他の操作

ユーザー情報バックポストの先頭には、一般的なタスクは、辞書内の重要な情報を列挙することです。

print(post)
{'user_id': 209, 'message': 'D5 E4 F4 C5 G3', 'language': 'English', 'datetime': '20181212', 'location': (44.590533, -104.715566)}
# A common way: loop over all the keys
for key in post.keys():
value = post[key]
print(key, "=", value)
user_id = 209
message = D5 E4 F4 C5 G3
language = English
datetime = 20181212
location = (44.590533, -104.715566)

ここでは、(キーを使用)は、辞書内のすべてのキーを取得することができます。この章の注意python2は、印刷方法のpython3より強力異なるためです。

# Another way
for key, value in post.items():
     print(key, "=", value)
user_id = 209
message = D5 E4 F4 C5 G3
language = English
datetime = 20181212
location = (44.590533, -104.715566)

項目は、()は、すべてのペアの辞書を得ることができます。もちろん、辞書の操作、多くがあり、POP()、popitem()のような辞書で、キーと値のペアを削除することができ、クリア()を直接辞書を空にすることができます。マルチ関連試してみてください、あなたはより多くを見つけるでしょう。

ユーチューブソース:
https://www.youtube.com/watch?v=bY6m6_IIN94&list=PLi01XoE8jYohWFPpC17Z-wWhPOSuh8Er-

おすすめ

転載: blog.csdn.net/sinat_34611224/article/details/84957815