我目前正在尝试使用不同的键创建字典。到目前为止,这是我的代码:
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
为此,更改`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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。