开发者社区> 问答> 正文

如何在字典中添加键?(根据现有数据)

我目前正在尝试使用不同的键创建字典。到目前为止,这是我的代码:

fh = open("plateau.txt", "r")
str=fh.read()
fh.close()

lines=str.split("\n")

d = dict()
currentKey = None
for line in lines:
    if ":" in line:
        currentKey    = line.strip(":")
        d[currentKey] = []
    else:
        d[currentKey].append(tuple(line.split(" ")))
print(d)

一旦这样做,我将收到这样的字典:

{'map': [('39', '41')], 'hubs': [('21', '3', '1500', '25'), ('21', '38', '1500', '25')], 'peaks': [('10', '10', '200'), ('11', '10', '300'), ('12', '10', '400'), ('10', '11', '200'), ('10', '12', '500'), ('',)]}

我想保留* map hubs peaks *作为键,但是要添加新的键,以便使'x':每个数字中的第一个数字,'y':第二个数字,等等。我该怎么办那?我害怕弄乱我的代码,因为我感觉自己快要准备好了!谢谢您的帮助。

问题来源:stackoverflow

展开
收起
is大龙 2020-03-23 18:51:50 285 0
1 条回答
写回答
取消 提交回答
  • 为此,更改`tuple(line.split(“”))``:

    { k:int(v) for k,v in zip(("x","y","z","health"),line.split(" ")) }
    

    这将给您带来一些东西,它们比拥有单独的键且键之间的值难以匹配的操作要容易得多:

    { 
       'map': [{"x":39, "y":41}], 
      'hubs': [{"x":21, "y":3, "z":1500, "health":25}, {"x":21, "y":38, "z":1500, "health":25}], 
     'peaks': ...
    }
    

    回答来源:stackoverflow

    2020-03-23 18:51:57
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载