a_dict.keys()
があなたの辞書
a_dict.values()
でキーのリストでは、
a_dict.items()
があるあなたの辞書に値のリストです(キー、値)のリストのペア
{value:key for key, value in a_dict.items()}
はa_dict
を取り、結果として新たなデータ構造を返す、その値とのキースイッチ辞書()理解あります。あなたがよく見ると、結果部分にはvalue:key
がありますが、反復部分にはkey, value
があることがわかります。非常にトリッキー、非常にpythonic。
a_dict
に重複する値がない場合は、元の辞書の逆になります。重複がある場合、新しいdictのすべてのキーは一意でなければならないので、重複した値のそれぞれのマッピングのうちの1つだけが生き残ります。あなたは困難な彼らがどのように動作するか理解を抱えている場合はここ
>>> a_dict = {'a': 1, 'b': 2, 'c': 3}
>>> b_dict = {value:key for key, value in a_dict.items()}
>>> a_dict.items()
[('a', 1), ('c', 3), ('b', 2)]
>>> b_dict.items()
[(1, 'a'), (2, 'b'), (3, 'c')]
>>> a_dict.keys()
['a', 'c', 'b']
>>> b_dict.values()
['a', 'b', 'c']
>>> a_dict.values()
[1, 3, 2]
>>> b_dict.keys()
[1, 2, 3]
# Try one with duplicates!
>>> c_dict = {'a': 1, 'b': 2, 'c': 3, 'd':2}
>>> d_dict = {value:key for key, value in c_dict.items()}
# The number 2 can only map to one value;
# the constructor seems to have encountered 'd' last
>>> c_dict.items()
[('a', 1), ('c', 3), ('b', 2), ('d', 2)]
>>> d_dict.items()
[(1, 'a'), (2, 'd'), (3, 'c')]
はのdict()理解の単純な例です。あなたのインタラクティブなエディタにそれを入力し、それを取り乱してください!
>>> e_dict = {n: str(n) * n for n in range(1, 30)}
は、あなたの 'for'が言っている:それに割り当てられた各' key'と[値]を引き出し、対応する変数に格納します。便利ですか? – rjz
それを色の文法で見ると突然クリックしました。何かのために>>>何かを見つけました:何か2つの変数を1つではなくループしていました。元々はコンマが外側{} 。私はものの中の声明を見るのに慣れていないよ –
あなたはそれを持っている!^ – rjz