gpt4 book ai didi

string - 将组件由符号分隔的字符串转换为嵌套的 python 字典

转载 作者:行者123 更新时间:2023-12-02 04:10:31 24 4
gpt4 key购买 nike

我正在解决一个 Python 问题,希望得到任何帮助。请耐心等待,我的 Python 目前还很基础。

<小时/>

问题:

如何转换这样的字符串结构:

text="key1=value1;key2=value2\nkeyA=valueA\n..."

像这样的Python字典:

{0:{'key1':'value1', 'key2':'value2'}, 1:{'keyA':'valueA'}}
  1. 意识到“;”分隔内部字典中的项目,而“\n”分隔外部字典中的项目。
  2. 内部字典中的键、值都是字符串。外部字典的键是索引。

需要另一个函数来将这个 Python 字典转换回其原始字符串形式。

<小时/>

我现在在哪里:

我正在考虑创建一个能够执行此操作的循环,但我正在努力创建它。

         a[0]["key1"]="value1"  
a[0]["key2"]="value2"
a[1]["keyA"]="valueA"

我做的最好的就是用 '\n' 分割字符串,如下所示:

text ='k1=v1;k2=v2\nk3=v3\nk4=v4'
text = text.split("\n")

output: ['k1=v1;k2=v2', 'k3=v3', 'k4=v4']

并将元素循环到字典中,如下所示:

dic = {}
for i,x in enumerate(text):
dic[i] = x

output: {0: 'k1=v1;k2=v2', 1: 'k3=v3', 2: 'k4=v4'}

但是如何将字典中的这些值获取到如上所示的键、值结构中?

最佳答案

您可以使用以下字典理解:

{i: dict(p.split('=', 1) for p in l.split(';')) for i, l in enumerate(text.split('\n')) if l}

使用您的示例输入:

text="key1=value1;key2=value2\nkeyA=valueA\n"

这将返回:

{0: {'key1': 'value1', 'key2': 'value2'}, 1: {'keyA': 'valueA'}}

关于string - 将组件由符号分隔的字符串转换为嵌套的 python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52625591/

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