使用Python将此列表转换为字典

2024-05-28 20:25:15 发布

您现在位置:Python中文网/ 问答频道 /正文

list = ['Name=Sachin\n', 'country=India\n', 'game=cricket\n']

我希望这个列表在字典中,键为Namecountrygame,值为SachinIndiacricket作为对应的值。我从一个文本文件中使用readlines()得到了这个列表。你知道吗


Tags: namegame列表字典countrylist文本文件india
3条回答

在一行中:

lst =['Name=Sachin\n','country=India\n','game=cricket\n']

dct = dict( (item.split('=')[0], item.split('=')[1].strip()) for item in lst )
print(dct)

# {'game': 'cricket', 'country': 'India', 'Name': 'Sachin'}

注意:list不是一个好的变量名!你知道吗

strip()被调用了两次,这不是很好-这可能更好:

def splt(item):
    sp = item.strip().split('=')
    return sp[0], sp[1]

dct = dict( splt(item) for item in lst )
print(dct)

只是使用regex的另一种方法。你知道吗

>>> lis = ['Name=Sachin\n','country=India\n','game=cricket\n']
>>> dict(re.findall(r'(\w+)=(\w+)',''.join(lis)))
{'Name': 'Sachin', 'game': 'cricket', 'country': 'India'}
>>> lst = ['Name=Sachin\n', 'country=India\n', 'game=cricket\n']
>>> result = dict(e.strip().split('=') for e in lst)
>>> print(result)
{'Name': 'Sachin', 'country': 'India', 'game': 'cricket'}

相关问题 更多 >

    热门问题