这段代码能被改写成更具python风格吗?

这段代码能被改写成更具python风格吗?,python,optimization,Python,Optimization,我从文件中读取值。我有一行是这种格式的 大小='GG | 0,WQ | 3,EW | 8,RE | 23' 我希望它是一本字典的目录。 现在我使用这个代码,它工作得很完美,但似乎必须有一个更干净的方法来做到这一点 >>> size = 'GG|0,WQ|3,EW|8,RE|23' >>> a = [{i.split('|')[0]:i.split('|')[1]} for i in size.split(',')] >>> a [{'GG':

我从文件中读取值。我有一行是这种格式的 大小='GG | 0,WQ | 3,EW | 8,RE | 23' 我希望它是一本字典的目录。 现在我使用这个代码,它工作得很完美,但似乎必须有一个更干净的方法来做到这一点

>>> size = 'GG|0,WQ|3,EW|8,RE|23'
>>> a = [{i.split('|')[0]:i.split('|')[1]} for i in size.split(',')]
>>> a
[{'GG': '0'}, {'WQ': '3'}, {'EW': '8'}, {'RE': '23'}]
>>> 

也许您可以使用python正则表达式。。。显然,你可以更进一步

import re
size = 'GG|0,WQ|3,EW|8,RE|23'
pattern = re.compile('[A-Z][A-Z][|][0-9]+')
my_list = re.findall(pattern, size)
my_dic = [dict([item.split('|')]) for item in my_list]

也许您可以使用python正则表达式。。。显然,你可以更进一步

import re
size = 'GG|0,WQ|3,EW|8,RE|23'
pattern = re.compile('[A-Z][A-Z][|][0-9]+')
my_list = re.findall(pattern, size)
my_dic = [dict([item.split('|')]) for item in my_list]

你能改变文件的格式吗?就像这是一个类的格式,可以很容易地改变吗?为什么每个类都有自己的dict,而它们都有唯一的键?@JeffreyHaines不,我不能改变格式,我用这种方式得到文件,所以答案是“没有理由”。你能改变文件的格式吗?就像这是一个类的格式,格式可以很容易地更改吗?为什么每个格式都有自己的dict,而它们有唯一的键?@JeffreyHaines不,我不能更改格式,我以这种方式获取文件,所以答案是“根本没有理由”。像它一样,它消除了拆分的重复和硬索引的使用。像它一样,它消除了拆分的重复和硬索引的使用。