首页 > 解决方案 > 把列表变成字典

问题描述

我有清单:

['Location: NY',
 'price: 11103 USD', 
 'Year: 2018', 
 'Model: Golf VII',
'Security',
'Airbag']

我如何把它变成字典?我使用的列表类型与问题here中描述的不同。还有一些列表元素是空的,我需要在最终字典中省略它们。

标签: pythonpython-3.xlistdictionary

解决方案


如果你的图案总是像你描绘的那样,你可以split(': ')你的物品

my_list = ['Location: NY', 'price: 11103 USD', 'Year: 2018', 'Model: Golf VII']
my_dict = { i.split(': ')[0] : i.split(': ')[1] for i in my_list }

空值的加法:

您还可以将您的逻辑提取到一个函数中并进行一些其他控制(修剪、空值等),并且仍然使用字典理解,如下所示:

def str_to_keyval(inp, separator=':'):
  # to list
  li = inp.split(separator) if (separator in inp) else [inp, '']
  # strip elements
  return [i.strip() for i in li]

my_list = [
  'Location: NY',
  'price: 11103 USD',
  'Year: 2018',
  'Model: Golf VII',
  'Security',
  'Airbag'
]

my_dict = { str_to_keyval(i)[0] : str_to_keyval(i)[1] for i in my_list }

str_to_keyval您可以通过编辑示例中的第一行函数来更改空值的表示(忽略它们的键,或用空字符串等表示) 。事实上,它将空字符串作为缺失值。


推荐阅读