python - 如何生成 Python 字典并同时将某些字符串转换为浮点数?
问题描述
假设我有list
inlists
变量matrix
:
matrix = [['first', '1,1', 'last'], ['strng_1', '12231,71', 'st_2']]
如您所见,所有嵌套列表都将浮点数据写入字符串。我想将它们转换为float
数据类型。我需要创建一个字典并同时进行此转换。出于这个原因,我尝试使用dictionary comprehension
. 因此,这些作为单行的操作可能如下所示:
dict_comp = {r[0]: r.insert(1, float(r[1].replace(',', '.'))).pop(2) for r in matrix if r}
但它没有按预期工作。而现在,经过我的上一个问题之后,我确切地知道为什么。最后,我想问一下如何生成字典,同时将某些字符串转换为浮点数?
更新
期望输出:
{'first': ['first', 1.1, 'last'], 'strng_1': ['strng_1', 12231.71, 'st_2']}
解决方案
以下将起作用:
dict_comp = {r[0]: [r[0], float(str(r[1]).replace(',','.')), r[2]] for r in matrix if r}
# {'first': ['first', 1.1, '1,1'], 'strng_1': ['strng_1', 12231.71, 'st_2']}
推荐阅读
- java - 如何通过蓝牙发送日历类的变量
- python - Django 多处理数据库并发
- jquery - jQuery Timepicker“changeTime”不起作用
- django - 将 request.get 和 request.post 数据转换为字典
- python - 如何创建自己的方法并在 DataFrame 中使用它?
- python - 如果不存在,如何在文件中插入行?
- salesforce - 如何在 Salesforce soql 中收集所有静音提要项目列表
- c++ - 为什么 c++ 中没有整数的 std::copysign 特化?
- ios - UICollectionViewCell cellSize 不适用于最后一项
- android - 使用LinearLayout在一行(水平)android studio中设置三个按钮