Python 如何导入和转换?

Python 如何导入和转换?,python,converter,Python,Converter,导入文件后,打开并读取它 fop = open('lottery.txt','r') _str = fop.read() fop.close() 我得到了这样的内容: ' monday: 2 23\ntuesday :4 31\nwednesday : 19 22\nthursday : 1' 如何将其转换为字典并得到以下结果: {'monday': '2 23', 'tuesday': '4 31','wednesday': '19 22', 'thursday' : '1'}

导入文件后,打开并读取它

fop = open('lottery.txt','r')
_str = fop.read()
fop.close()
我得到了这样的内容:

'   monday: 2 23\ntuesday :4 31\nwednesday   : 19 22\nthursday : 1'
如何将其转换为字典并得到以下结果:

{'monday': '2 23', 'tuesday': '4 31','wednesday': '19 22', 'thursday' : '1'}

逐行处理:

with open('lottery.txt', 'r') as fop:
    result = dict(map(str.strip, line.split(':', 1)) for line in fop)
dict(用于fop中的行的映射(..)
正在使用;我们在每行上循环
fop
,然后在找到的第一个
冒号上将该行拆分为两个值,并将剥离的结果存储为映射的键和值

映射(str.strip,line.split(“:”,1))
从拆分行的每个部分的开始和结束处删除空白。
.split()
本身将
上的拆分限制为仅1个这样的字符,以防止行中任何额外的
冒号混淆
dict
构造函数,该构造函数只需要
(键,值)

演示:

长的非生成器表达式版本应为:

with open('lottery.txt', 'r') as fop:
    result = {}
    for line in fop:
        key, value = line.split(':', 1)
        result[key.strip()] = value.strip()

逐行处理:

with open('lottery.txt', 'r') as fop:
    result = dict(map(str.strip, line.split(':', 1)) for line in fop)
dict(用于fop中的行的映射(..)
正在使用;我们在每行上循环
fop
,然后在找到的第一个
冒号上将该行拆分为两个值,并将剥离的结果存储为映射的键和值

映射(str.strip,line.split(“:”,1))
从拆分行的每个部分的开始和结束处删除空白。
.split()
本身将
上的拆分限制为仅1个这样的字符,以防止行中任何额外的
冒号混淆
dict
构造函数,该构造函数只需要
(键,值)

演示:

长的非生成器表达式版本应为:

with open('lottery.txt', 'r') as fop:
    result = {}
    for line in fop:
        key, value = line.split(':', 1)
        result[key.strip()] = value.strip()

@wim:没有按1键,而是按了
(Dvorak键盘)。尝试你的代码时,我遇到了这样的错误:
你的程序中有一个错误:在扫描字符串文字时下线。
@user1768615:是的,有一个输入错误。我会在Dvorak键盘上单独给你一个+1。嘿!我也用德沃夏克。aoeui@wim:没有按1键,而是按了
(Dvorak键盘)。尝试你的代码时,我遇到了这样的错误:
你的程序中有一个错误:在扫描字符串文字时下线。
@user1768615:是的,有一个输入错误。我会在Dvorak键盘上单独给你一个+1。嘿!我也用德沃夏克。aoeui!!