これは、for ループとリスト内包表記で同じ辞書アイテムを複数回参照することを示すために考案された例です。まず、for ループ:
dict_index_mylists = {0:['a', 'b', 'c'], 1:['b', 'c', 'a'], 2:['c', 'a', 'b']}
# for-loop
myseq = []
for i in [0, 1, 2]:
interim = dict_index_mylists[i]
if interim[0] == 'b' or interim[1] == 'c' or interim[2] == 'a':
myseq.append(interim)
for ループでは、暫定リストがディクショナリ オブジェクトから参照され、次に if 条件で複数回参照されます。これは、特にディクショナリが非常に大きい場合やストレージ上にある場合に意味があります。繰り返しになりますが、Python 辞書はパフォーマンスのために最適化されているため、「暫定」参照はおそらく不要です。
これは、for ループのリスト内包表記です。
# list-comprehension
myseq = [dict_index_mylists[i] for i in [0, 1, 2] if dict_index_mylists[i][0] == 'b' or dict_index_mylists[i][1] == 'c' or dict_index_mylists[i][2] == 'a']
質問は次のとおりです。
を。リスト内包表記は、ディクショナリ アイテムへの複数の参照を作成しますか、それともローカルの「暫定」リストを参照して保持しますか?
b. 同じ辞書項目に複数の条件を含み、辞書が非常に大きい場合に最適なリスト内包表記は何ですか?