gpt4 book ai didi

python - 解析列表项并使用理解返回字典

转载 作者:太空宇宙 更新时间:2023-11-03 12:54:17 25 4
gpt4 key购买 nike

我有一个需要处理的包含两项的列表。这些项目是从数据库中检索的,因此实际上是 header:value 对,但它们未被解析。它们是由制表符分隔的字符串,因此列表如下所示:

my_list = ['header1\theader2\theader3\theader4', 'val1\tval2\tval3\tval4']

我需要从键值对创建字典。目前我用列表理解来做:

keys = [k.strip() for k in my_list[0].split('\t')]
vals = [v.strip() for v in my_list[1].split('\t')]
return dict(zip(keys, vals))

我认为可能有一种方法可以改为使用 dict comprehension 来做到这一点,但我不知道如何做。是否可以解析列表项并使用单行或更 pythonic 的方式返回字典?

最佳答案

我发现下面的解决方案是最优雅的:

dict_comp = dict(zip(*map(lambda x: x.split('\t'), my_list)))
print(dict_comp) # -> {'header1': 'val1', 'header2': 'val2', 'header3': 'val3', 'header4': 'val4'}

或者,lambda 可以替换为生成器表达式:

dict_comp = dict(zip(*(x.split('\t') for x in my_list)))

如果字符串不包含任何空格,则可以进一步缩短为:

dict_comp = dict(zip(*map(str.split, my_list)))  # kudos @Chris_Rands

关于python - 解析列表项并使用理解返回字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48910709/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com