python - 把列表变成字典
问题描述
我有清单:
['Location: NY',
'price: 11103 USD',
'Year: 2018',
'Model: Golf VII',
'Security',
'Airbag']
我如何把它变成字典?我使用的列表类型与问题here中描述的不同。还有一些列表元素是空的,我需要在最终字典中省略它们。
解决方案
如果你的图案总是像你描绘的那样,你可以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
您可以通过编辑示例中的第一行函数来更改空值的表示(忽略它们的键,或用空字符串等表示) 。事实上,它将空字符串作为缺失值。
推荐阅读
- xcode - 如何在运行其他项目时修复“打印:条目,”:CFBundleIdentifier“,不存在”,该怎么办?
- php - 通过网站安装 Python 模块
- php - 如何在andorid 中从服务器创建报表PDF 或Excel?
- ocaml - 在 Ocaml 中打印用户定义的类型
- c - main 内部的纯函数没有按照我的意图获取和处理 x 的单个值
- html - 我想获取单击用户的 ID 并在我在引导模式上单击是时将其删除
- sql-server - 如何更新 SQL 表中的计算列
- spring-boot - spring-boot 优雅关机
- python - 如何使scrapy输出到stdout以从Python中读取
- git - `git commit --amend` 是否触及了不必要的文件?