如何将一组格式不佳的数据对转换为字典?

1 投票
4 回答
647 浏览
提问于 2025-04-16 07:35

我想把一个包含元组的字符串转换成字典,但这个字符串的格式不是很好。

比如说,字符串是这样的:s = "banana 4 apple 2 orange 4"

我希望得到的字典是这样的:d = {'banana':'4', 'apple':'2', 'orange':'4'}

我遇到的问题是,字符串中的空格既用来分隔键值对,也用来分隔每一对的内容。这种情况下,我该怎么处理呢?

4 个回答

0

使用 .split() 方法,把字符串分开,然后每次取出两个元素,最后把这些元素传给 dict() 来创建字典。

5

这个方法简单,但能解决问题:

使用 split() 函数

>>> s = "banana 4 apple 2 orange 4"
>>> s.split()
['banana', '4', 'apple', '2', 'orange', '4']
>>> 

把它们分组(这里需要做一些错误检查)

>>> k = [(x[t], x[t+1]) for t in range(0, len(x) -1, 2)]
>>> k
[('banana', '4'), ('apple', '2'), ('orange', '4')]
>>> 

然后把这些分组放进一个字典里

>>> dict(k)
{'orange': '4', 'banana': '4', 'apple': '2'}
>>> 
3

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,尤其是当我们刚开始学习编程的时候。比如,有人可能会在使用某个特定的功能时,发现它没有按照预期工作。这时候,我们就需要去查找解决方案,看看其他人是怎么处理类似问题的。

在这个过程中,StackOverflow是一个非常有用的资源。它是一个问答网站,程序员们可以在这里提问和回答问题。你可以搜索你遇到的问题,看看有没有人已经问过类似的问题,或者有没有人提供了解决方案。

总之,遇到问题时,不要着急,先去查找资料,看看别人是怎么解决的。这样可以帮助你更快地找到答案,也能让你在编程的路上走得更顺利。

>> s = "banana 4 apple 2 orange 4"
>> lst = s.split()
>> dict(zip(lst[::2], lst[1::2]))

撰写回答