首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用拆分将字符串转换为字典

如何使用拆分将字符串转换为字典
EN

Stack Overflow用户
提问于 2022-05-17 11:54:02
回答 2查看 37关注 0票数 -4

string = 'racknumber: 1 racktype: rack23 apn: rackansi2p高度: 2134.0宽度:701‘

输出= {'racknumber':'1','racktype':‘rack23 23’,'apn':'rackansi2p',‘高度’:'2134.0',‘宽度’:'701.0'}

EN

回答 2

Stack Overflow用户

发布于 2022-05-17 12:02:24

如果每个键只有一个项目,您可以这样做

代码语言:javascript
运行
复制
mystr = "racknumber: 1 racktype: rack23 apn: rackansi2p height: 2134.0 width: 701.0"
splitted = mystr.split()
mydic = {}

for i in range(len(splitted)):

    if i % 2 == 1:
        mydic[splitted[i-1]] = splitted[i]
票数 0
EN

Stack Overflow用户

发布于 2022-05-17 12:41:46

代码语言:javascript
运行
复制
string = 'racknumber: 1 racktype: rack23 apn: rackansi2p height: 2134.0 width: 701.0'

l = sum((s.split() for s in string.split(':')), [])
d = dict(zip(l, l[1:]))
print(d)

备注:

  • 由于时间复杂性“问题”,不建议使用sum( , [])来处理列表。使用,即chainitertools。在飞行中测试小东西..。我想是有用的。

这里有itertools

代码语言:javascript
运行
复制
...
l = list(it.chain.from_iterable(s.split() for s in string.split(':')))
...
  • 有关使用正则表达式的更复杂的内容,请参见文档
代码语言:javascript
运行
复制
import re

d = dict(re.findall(r'\b([^\s]+?):\s([^\s]+)', string))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72273603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档