python - 仅转换一个具有字典理解的项目

标签 python dictionary

干杯,

我目前正在编写一段代码,并且正在尝试为我的问题找到最好的、更 pythonic 和 CPU 成本更低的解决方案。

我实际上有一个通过文件读取的“索引值”数组,一个例子是:

>>> list = ['index_1    200', 'index_2    500', 'index_3    50']
>>>
>>> list
['index_1    200', 'index_2    500', 'index_3    50']

我正在尝试创建一个字典理解,我将在其中将索引名称维护为 string,但将值转换为 int。我发现实现此目标的方法是:

>>> dict((line.split()[0], int(line.split()[1])) for line in list)
{'index_2': 500, 'index_3': 50, 'index_1': 200}

但是 (line.split()[0], int(line.split()[1]) 部分看起来可以用更好的方式完成,因为我的列表example 实际上只是一个例子,以后我可能会发现大量的索引。

感谢您的帮助。

最佳答案

您可以避免将每个字符串拆分两次,并且可以像这样使用字典推导式:

>>> mylist = ['index_1    200', 'index_2    500', 'index_3    50']
>>> mydict = {k:int(v) for (k,v) in (line.split() for line in mylist)}
>>> mydict
{'index_2': 500, 'index_3': 50, 'index_1': 200}

编辑

在 Python 2.6 中,你可以做几乎相同的事情,但没有字典理解语法:

 >>> mydict = dict((k,int(v)) for (k,v) in (line.split() for line in mylist))

关于python - 仅转换一个具有字典理解的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37439734/

相关文章:

python - 从 awk 调用 python 脚本

python - 将一系列字典转换为 DataFrame - Pandas

python - 如何在两个不同的字典中组合值,这些字典在 python 中具有相同的键

python - python中的Lambda参数函数

Python ~ 访问模板类中的元组成员

python - 在(非常大的)pandas 数据框中查找值并将其存储到字典中

python - 根据其他 2 列的比较填充列(pandas)

python - 将指针字典保存到文件

python - 从 Databrick 文件系统读取文件

python - "Unable to find a matching set of capabilities"-- 使用 Python 2.7 的 Selenium