我知道这是一个非常基本的python概念,但觉得它对某人有用。
我有以下列表
list_items = [
('name','Random'),
('type','Film'),
('description','Nothing'),
('rent_active','True'),
('rent_price_usd','23.4'),
('rent_price_episode_usd','23.4'),
('buy_episode_active','23.4'),
现在我想把它转换成dict,所以我们可以做dict(list_items)
,结果就是
{'buy_episode_active': '23.4',
'description': 'Nothing',
'name': 'Random',
'rent_active': 'True',
'rent_price_episode_usd': '23.4',
'rent_price_usd': '23.4',
'type': 'Film'}
但我需要的是字典中的项目应与上面列表中的项目(list_items
)的顺序相同,如下所示
{
'name': 'Random',
'type': 'Film'
'description': 'Nothing',
'rent_active': 'True',
'rent_price_usd': '23.4',
'rent_price_episode_usd': '23.4',
'buy_episode_active': '23.4',
}
我知道一个列表有序的元素集合和字典是无序的元素集合,但我仍然需要上述所需格式的字典,如果我们在列表上进行额外处理或处理需要时间,我很好。那么有人可以让我知道如何根据我们要求的格式订购字典吗?
答案 0 :(得分:7)
collections.OrderedDict可以满足您的需求。
答案 1 :(得分:4)
>>> list_items = [
... ('name','Random'),
... ('type','Film'),
... ('description','Nothing'),
... ('rent_active','True'),
... ('rent_price_usd','23.4'),
... ('rent_price_episode_usd','23.4'),
... ('buy_episode_active','23.4'),
... ]
>>> from collections import OrderedDict
>>> mydict = OrderedDict(list_items)
>>> mydict
OrderedDict([('name', 'Random'), ('type', 'Film'), ('description', 'Nothing'), ('rent_active', 'True'), ('rent_price_usd', '23.4'), ('rent_price_episode_usd', '23.4'), ('buy_episode_active', '23.4')])
请注意,OrderedDict是在python 2.7中引入标准库的。如果你有旧版本的python,你可以在ActiveState上找到有序词典的配方