0

私は現在、このガイドを使用してPythonを学習しています(より多くのコンテキストが必要な場合)http://www.diveintopython3.net/comprehensions.html#dictionarycomprehension

>>> import os, glob, humansize
>>> metadata_dict = {f:os.stat(f) for f in glob.glob('*')}                                  ①
>>> humansize_dict = {os.path.splitext(f)[0]:humansize.approximate_size(meta.st_size) \     
...                   for f, meta in metadata_dict.items() if meta.st_size > 6000}          ②
>>> list(humansize_dict.keys())                                                             ③
['romantest9', 'romantest8', 'romantest7', 'romantest6', 'romantest10', 'pluraltest6']
>>> humansize_dict['romantest9']                                                            ④
'6.5 KiB'

なぜ「humansize.approximate_size(meta.st_size)」なのですか?「for f, meta」のメタ変数はどこから来たのですか?

4

1 に答える 1

3

これは とは関係ありませんos.stat

あなたはその章の主題である理解をスキップしたようです-これは口述理解です。リスト内包表記に関する前述の説明と同様に、dict comp は反復処理中の dict 内の各項目に対して変数を作成します。これは、そのコードの脚注で説明されています。

于 2015-07-07T19:22:38.577 に答える