Skip to main content
 首页 » 编程设计

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

2025年05月04日12bhlsheji

干杯,

我目前正在编写一段代码,并且正在尝试为我的问题找到最好的、更 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))