を解凍するにはあまりにも多くの値私はちょうど楽しみのために、辞書の理解と協力するために、次のコードを書き換えるしよう:ネストされた辞書の理解:
import itertools
with open('foo.txt') as f:
entities = f.read().splitlines()
parsed_entities = []
while entities:
props = itertools.takewhile(lambda n: n != 'EOM', entities)
entity = {p.split('=')[0]: p.split('=')[1] for p in props}
entities = entities[len(entity)+2:] # Delete and skip EOM & newline
parsed_entities.append(entity)
私はこの行を置き換えたい:
entity = {p.split('=')[0]: p.split('=')[1] for p in props}
entity = {key: value for p in props for key, value in p.split('=')}
私がそうしようとすると、次のようになります。次のエラーが表示されます。
ValueError: too many values to unpack (expected 2)
私は間違っていますか? ipdb.pm()
を使用すると、pはname=yam
ですが、key
とvalue
は未定義です。
私は思います'p.split( '=')'の長さは2ではありません。 –
@SamChats:確かです。しかし 'p.split( '=')[0]'はそうではなく、解凍されているものです。 –
@SamChats、それをチェックしました。私は 'p.split( '=')'を 'print(len(p.split( '=')))'に置き換え、それは2です。 – Infinity