Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
70 views
in Technique[技术] by (71.8m points)

python 3.x - How can I convert a list to a dictionary

I want to convert this list:

 lst = ['Exif.GPSInfo.GPSLongitudeRef                 Ascii       2  East',
 'Exif.GPSInfo.GPSLongitude                    Rational    3  34deg 55' 18.616" ',
 'Exif.GPSInfo.GPSAltitudeRef                  Byte        1  Above sea level',
 'Exif.GPSInfo.GPSAltitude                     Rational    1  151 m']

Into a dictionary :

a_dict = {'GPSLongitudeRef': 'East',
          'GPSLongitude': '34deg 55' 18.616"',
          'GPSAltitudeRef': 'GPSAltitudeRef',
          'GPSAltitude': '151 m'}

I did try a regex expression:

tags = []
vals= []
for n in lst:
tags.append(re.findall('(?<=w.)(w*)(?=s)',n))
vals.append(re.findall('(?<=ds{2})(.*?)(?=',)',n))

But although 'tags' are working, 'vals' comes out empty for some reason

question from:https://stackoverflow.com/questions/66047344/how-can-i-convert-a-list-to-a-dictionary

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Here is a one-liner that split lines by two whitespaces and uses dictionary comprehension.

result = {line.split("  ")[0] : line.split("  ")[-1] for line in lst}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...