023 Python初心者ノート-辞書:辞書の内蔵関数と内蔵方法の使用と例
8560 ワード
一、辞書:辞書はpythonで唯一のマッピングタイプです.簡単な辞書の作成:変数名={key 1:value 1,key 2=values,...} 辞書対応のキーにアクセスする値:辞書変数名[key] 辞書の対応するキーの対応する値を修正する:辞書変数名[key]=value、修正したキーが存在しない場合、そのキー値を辞書の に加える.
二、pythonの工場関数(dict関数)で辞書を作成する
関数#カンスウ#
機能
使用法
英語の解釈
dict()
空の辞書を作成
dict()
new empty dictionary
dict(mapping)
マッピングによる辞書の作成
dict(((key1,value),(key2,value)...))またはdict(zip([key 1,key 2...],[value1,value2...]))
new dictionary initialized from a mapping object's (key, value) pairs
dict(iterable)
反復可能なオブジェクトによる辞書の作成
dict([(key1,value1),(key2,value2)...])
new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v
dict(**kwargs)
キーワードを入力して辞書を作成
dict(key1=value1,key2=value2...)
new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)
三、辞書に組み込まれた関数と方法:
1.辞書の組み込み関数と使用例:
組み込み関数
関数の機能
len(dict)
辞書内の要素の数、すなわちキーの合計数を計算します.
str(dict)
辞書を印刷可能文字列で出力
type(variable)
変数のタイプを返します
2.辞書の組み込み方法と使用例:
組み込みメソッド
使用
機能
clear()
dict1.clear()
辞書を空にする
copy()
dict1.copy()
辞書の浅いコピーを返します
fromkeys()
dict.fromkeys(seq[,value])
新しい辞書を作成します.シーケンスseqの要素を辞書のキーとして使用します.valueは辞書のすべてのキーに対応する初期値です.valueを設定しないと、デフォルトのすべてのキーに対応する値はNoneです.
keys()
dict1.keys()
辞書内のすべてのキーにアクセスし、値をリストに戻します.
values()
dict1.values()
ディクショナリ内のすべての値にアクセスし、値をリストに戻します.
items()
dict1.items()
辞書のキーと値にアクセスし、リストを返します.
get()
get(key[,formation])
辞書で指定したキーキーに対応する値を返し、アクセスしたキーが存在しない場合に返される情報formationです.戻り情報を設定しないと、デフォルトはNoneを返します.アクセスしたキーが存在する場合は、対応する値が返されます.
setdefault()
setdefault(key[,value])
辞書にキーと値valueのペアを追加し、valueを返します.valueが指定されていない場合、デフォルト設定はデフォルト値Noneに戻ります.追加するキーが既に存在する場合は、その建物に対応する値を返します.
in,not in
key1 in dict1
キーが辞書にあるかどうかを判断する
update()
dict1.update(dict2)
辞書dict 2による辞書dict 1の拡張
pop()
pop(key)
辞書で指定したキー値のペアを削除し、削除された値を返します.
popitem()
popitem()
辞書のキーと値のペアをランダムに削除して返します.
注意:
1.fromkeys()を使用して辞書のキーバッチに値を割り当てないでください.
2.fromkeys()キーワードを使用して辞書の値を変更しようとしても実現できません.辞書が再作成されます.
3.辞書のキー値に直接アクセスせずにgetを使用するのはなぜですか?
辞書に存在しないキーに直接アクセスすると、システムがエラーを報告するため、getメソッドを使用するとこのようなエラーを回避できます.
4.辞書を空にする方法はclearで、dict 1={}とdict 1.clear()メソッドの違いは何ですか?
clear()メソッドは、辞書の内容を空にすることです.dict 1={}は空の辞書を再作成し、元の辞書の内容は依然として存在し、このような操作はデータの安全に不利であり、ユーザーは他の方法で辞書のデータにアクセスすることができる.
5.copyメソッドと直接付与の違いは何ですか?
copyメソッドは、辞書を再作成し、元の辞書の内容をコピーすることです.dict 2=dict 1の付与方法は、元の辞書に名前を付け直しただけです.
>>> #
>>> dict1={}
>>> # : ={key1:value1,key2:value2,...}
>>> dict2={1:'one',' ':' '}
>>> #
>>> dict2[' ']
' '
>>> #
>>> dict2[1]='hello'
>>> #
>>> dict2[' ']=' '
>>> dict2
{1: 'hello', ' ': ' ', ' ': ' '}
二、pythonの工場関数(dict関数)で辞書を作成する
関数#カンスウ#
機能
使用法
英語の解釈
dict()
空の辞書を作成
dict()
new empty dictionary
dict(mapping)
マッピングによる辞書の作成
dict(((key1,value),(key2,value)...))またはdict(zip([key 1,key 2...],[value1,value2...]))
new dictionary initialized from a mapping object's (key, value) pairs
dict(iterable)
反復可能なオブジェクトによる辞書の作成
dict([(key1,value1),(key2,value2)...])
new dictionary initialized as if via: d = {} for k, v in iterable: d[k] = v
dict(**kwargs)
キーワードを入力して辞書を作成
dict(key1=value1,key2=value2...)
new dictionary initialized with the name=value pairs in the keyword argument list. For example: dict(one=1, two=2)
>>> # :dict()
>>> dict()
{}
>>> # 1:dict(((key1,value),(key2,value)...))
>>> dict(((1,'one'),(2,'two'),(3,'three')))
{1: 'one', 2: 'two', 3: 'three'}
>>> # 2:dict(zip([key1,key2...],[value1,value2...]))
>>> dict(zip(['a','b','c'],['A','B','C']))
{'a': 'A', 'c': 'C', 'b': 'B'}
>>> # :dict([(key1,value1),(key2,value2)...])
>>> dict([('I','love you'),('you','handsom'),('he','haha')])
{'I': 'love you', 'you': 'handsom', 'he': 'haha'}
>>> # :dict(key1=value1,key2=value2...)
>>> dict(a='AA',b='BB',c='CC')
{'a': 'AA', 'c': 'CC', 'b': 'BB'}
三、辞書に組み込まれた関数と方法:
1.辞書の組み込み関数と使用例:
組み込み関数
関数の機能
len(dict)
辞書内の要素の数、すなわちキーの合計数を計算します.
str(dict)
辞書を印刷可能文字列で出力
type(variable)
変数のタイプを返します
>>> dict1={1:'one',2:'two',3:'three'}
>>> #len(dict): ,
>>> len(dict1)
3
>>> #str(dict): ,
>>> str(dict1)
"{1: 'one', 2: 'two', 3: 'three'}"
>>> #type(variable)
>>> type(dict1)
2.辞書の組み込み方法と使用例:
組み込みメソッド
使用
機能
clear()
dict1.clear()
辞書を空にする
copy()
dict1.copy()
辞書の浅いコピーを返します
fromkeys()
dict.fromkeys(seq[,value])
新しい辞書を作成します.シーケンスseqの要素を辞書のキーとして使用します.valueは辞書のすべてのキーに対応する初期値です.valueを設定しないと、デフォルトのすべてのキーに対応する値はNoneです.
keys()
dict1.keys()
辞書内のすべてのキーにアクセスし、値をリストに戻します.
values()
dict1.values()
ディクショナリ内のすべての値にアクセスし、値をリストに戻します.
items()
dict1.items()
辞書のキーと値にアクセスし、リストを返します.
get()
get(key[,formation])
辞書で指定したキーキーに対応する値を返し、アクセスしたキーが存在しない場合に返される情報formationです.戻り情報を設定しないと、デフォルトはNoneを返します.アクセスしたキーが存在する場合は、対応する値が返されます.
setdefault()
setdefault(key[,value])
辞書にキーと値valueのペアを追加し、valueを返します.valueが指定されていない場合、デフォルト設定はデフォルト値Noneに戻ります.追加するキーが既に存在する場合は、その建物に対応する値を返します.
in,not in
key1 in dict1
キーが辞書にあるかどうかを判断する
update()
dict1.update(dict2)
辞書dict 2による辞書dict 1の拡張
pop()
pop(key)
辞書で指定したキー値のペアを削除し、削除された値を返します.
popitem()
popitem()
辞書のキーと値のペアをランダムに削除して返します.
>>> dict1={1:'one',2:'two',3:'three'}
>>> #clear()
>>> dict1.clear()
>>> dict1
{}
>>> #copy():
>>> dict2={1:'one',2:'two',3:'three'}
>>> dict3=dict2.copy()
>>> dict3
{1: 'one', 2: 'two', 3: 'three'}
>>> #fromkeys(seq[,value]) , seq ,value
>>> dict4=dict.fromkeys((1,2,3))
>>> dict4
{1: None, 2: None, 3: None}
>>> dict5=dict.fromkeys((1,2,3),'number')
>>> dict5
{1: 'number', 2: 'number', 3: 'number'}
>>> # :keys(),values(),items()
>>> dict1={1:'one',2:'two',3:'three'}
>>> keys()
>>> for i in dict1.keys():
print(i)
1
2
3
>>> dict1.keys()
[1, 2, 3]
>>> #values()
>>> dict1.values()
['one', 'two', 'three']
>>> #items()
>>> dict1.items()
[(1, 'one'), (2, 'two'), (3, 'three')]
>>> for each in dict1.items():
print(each)
(1, 'one')
(2, 'two')
(3, 'three')
>>> #get(key[,value]): key ,value , 。 None; , 。
>>> dict1={1:'one',2:'two',3:'three'}
>>> print(dict1.get(4,' '))
>>> print(dict1.get(2,' '))
two
>>> print(dict1.get(5)) # None
None
>>> #setdefault(key[,value]): key value, value。 value, None。 ,
>>> dict1={'name':'Rubby','university':'Shandong'}
>>> dict1.setdefault('sex')
>>> dict1.setdefault('baby','Swan')
'Swan'
>>> dict1
{'name': 'Rubby', 'university': 'Shandong', 'sex': None, 'baby': 'Swan'}
>>> print(dict1.setdefault('sex','male'))
None
>>> #in,not in
>>> dict1={1:'one',2:'two',3:'three'}
>>> 1 in dict1
True
>>> 5 not in dict1
True
>>> #dict1.update(dict2): dict2 dict1
>>> a={1: 'one', 'name': 'Sam'}
>>> c={'adress':'China'}
>>> a.update(c)
>>> a
{1: 'one', 'name': 'Sam', 'adress': 'China'}
>>> #pop(key) , 。
>>> a={'name':'Ursula','sex':'female'}
>>> a.pop('sex')
'female'
>>> a
{'name': 'Ursula'}
>>> #popitem():
>>> a={1:'one','a':'AA','name':'cat'}
>>> a.popitem()
('name', 'cat')
>>> a
{1: 'one', 'a': 'AA'}
注意:
1.fromkeys()を使用して辞書のキーバッチに値を割り当てないでください.
dict1=dict.fromkeys((1,2,3),('one','two','three'))
>>> dict1
{1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}
2.fromkeys()キーワードを使用して辞書の値を変更しようとしても実現できません.辞書が再作成されます.
>>> dict1.fromkeys((1,2),'num')
{1: 'num', 2: 'num'}
3.辞書のキー値に直接アクセスせずにgetを使用するのはなぜですか?
辞書に存在しないキーに直接アクセスすると、システムがエラーを報告するため、getメソッドを使用するとこのようなエラーを回避できます.
4.辞書を空にする方法はclearで、dict 1={}とdict 1.clear()メソッドの違いは何ですか?
clear()メソッドは、辞書の内容を空にすることです.dict 1={}は空の辞書を再作成し、元の辞書の内容は依然として存在し、このような操作はデータの安全に不利であり、ユーザーは他の方法で辞書のデータにアクセスすることができる.
>>> dict2=dict1;dict3=dict1
>>> dict1={}
>>> dict2
{'a': 'A', 'b': 'B'}
>>> dict1.clear()
>>> dict2
{'a': 'A', 'b': 'B'}
>>> dict2.clear()
>>> dict3
{}
5.copyメソッドと直接付与の違いは何ですか?
copyメソッドは、辞書を再作成し、元の辞書の内容をコピーすることです.dict 2=dict 1の付与方法は、元の辞書に名前を付け直しただけです.
>>> dict1={'a':'A','b':'B'}
>>> dict2=dict1;dict3=dict1.copy()
>>> id(dict1);id(dict2);id(dict3)
2387017617912
2387017617912
2387017618200