2017-12-21 12 views
0

リストを仮定:とValueError {キー:キーのLのIの値、i.splitの値( ':')}

l=['The basics: URLconfs | View functions | Shortcuts | Decorators', 
'Reference: Built-in Views | Request/response objects | TemplateResponse objects', 
'File uploads: Overview | File objects | Storage API | Managing files | Custom storage', 
'Class-based views: Overview | Built-in display views | Built-in editing views | Using mixins | API reference | Flattened index', 
'Advanced: Generating CSV | Generating PDF', 
'Middleware: Overview | Built-in middleware classes'] 

私は辞書

に変換したいと思い
In [27]: {i.split(':')[0]: i.split(':')[1] for i in l} 
Out[27]: 
{'Advanced': ' Generating CSV | Generating PDF', 
'Class-based views': ' Overview | Built-in display views | Built-in editing views | Using mixins | API reference | Flattened index', 
'File uploads': ' Overview | File objects | Storage API | Managing files | Custom storage', 
'Middleware': ' Overview | Built-in middleware classes', 
'Reference': ' Built-in Views | Request/response objects | TemplateResponse objects', 
'The basics': ' URLconfs | View functions | Shortcuts | Decorators'} 

それはi.split(':')が発生する繰り返し冗長なので、私はそれがそうでなければ

エラーを報告

{key:value for i in l for key, value in i.split(':')} 

を試してみました

ValueError: too many values to unpack (expected 2) 

簡潔にするにはどうすればいいですか?

答えて

1
dict(item.split(':') for item in l)