atm*_*man 6 python dictionary list ordereddictionary python-2.7
问题是:有一个名称列表和一个列表列表,如何创建一个列表,其中每个项目是一个名称为键的有序字典,以及列表列表中的项目作为值?从下面的代码可能会更清楚:
from collections import OrderedDict
list_of_lists = [
['20010103', '0.9507', '0.9569', '0.9262', '0.9271'],
['20010104', '0.9271', '0.9515', '0.9269', '0.9507'],
['20010105', '0.9507', '0.9591', '0.9464', '0.9575'],
]
names = ['date', 'open', 'high', 'low', 'close']
Run Code Online (Sandbox Code Playgroud)
我想得到:
ordered_dictionary = [
OrderedDict([('date', '20010103'), ('open', '0.9507'), ('high', '0.9569'), ('low', '0.9262'), ('close', '0.9271')]),
OrderedDict([('date', '20010104'), ('open', '0.9271'), ('high', '0.9515'), ('low', '0.9269'), ('close', '0.9507')]),
OrderedDict([('date', '20010105'), ('open', '0.9507'), ('high', '0.9591'), ('low', '0.9464'), ('close', '0.9575')]),
]
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 10
使用zip()
的名称和值组合.列表理解:
from collections import OrderedDict
ordered_dictionary = [OrderedDict(zip(names, subl)) for subl in list_of_lists]
Run Code Online (Sandbox Code Playgroud)
这使:
>>> from pprint import pprint
>>> pprint([OrderedDict(zip(names, subl)) for subl in list_of_lists])
[OrderedDict([('date', '20010103'), ('open', '0.9507'), ('high', '0.9569'), ('low', '0.9262'), ('close', '0.9271')]),
OrderedDict([('date', '20010104'), ('open', '0.9271'), ('high', '0.9515'), ('low', '0.9269'), ('close', '0.9507')]),
OrderedDict([('date', '20010105'), ('open', '0.9507'), ('high', '0.9591'), ('low', '0.9464'), ('close', '0.9575')])]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7310 次 |
最近记录: |