首页 > 解决方案 > 如何生成 Python 字典并同时将某些字符串转换为浮点数?

问题描述

假设我有listinlists变量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']}

标签: pythonpython-3.xlistinsertdictionary-comprehension

解决方案


以下将起作用:

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']}

推荐阅读