我想将一个元组添加到列表中,以存储缺少的嵌套字典格式的数据。
all_cap = {"cap_1":{"id":1001, "vitals":[("Temp", 101), ("HR", 60)]}, "cap_2":
{"id":1002, "vitals":[("Temp", 104), ("HR", 60), ("RR", 12)]}}
因此,如果我将一个元组(“ RR”,16)添加到cap_1将会起作用,但是如果我想将其添加到cap_2它将不会覆盖已经存在的RR,甚至不会添加第二个RR对此。我已经尝试过像这样:
def add_vital(dict, str, int):
if all_cap[dict]["vitals"][0][0:len("vitals")] == str:
return True
else:
all_caps[dict]["vitals"].append(str, int)
return False
我知道我今天在这里一直问过很多问题,我真的很感谢收到的答复。它一直在提供帮助,但是我今天才开始尝试在Python中做一些工作(在此之前,我仅使用R),因此起步并运行其中的一些功能一直令人生畏。
答案 0 :(得分:0)
您可以通过搜索元组列表来执行此操作,但是根据使用情况,看来这些实际上应该只是字典。
all_cap = {
"cap_1": { "id": 1001, "vitals": {
"Temp": 101,
"HR": 60,
}},
"cap_2": { "id": 1002, "vitals": {
"Temp": 104,
"HR": 60,
"RR": 12,
}},
}
现在您的add_vital
函数就是:
def add_vital(cap_id, vital, value):
# type: (str, str, int) -> bool
if vital in all_cap[cap_id]["vitals"]:
return True
else:
all_cap[cap_id]["vitals"][vital] = value
return False
鉴于您拥有的结构,我认为您需要更多类似的东西:
def add_vital(cap_id, vital, value):
# type: (str, str, int) -> bool
if any([vital_pair[0] == vital
for vital_pair in all_cap[cap_id]["vitals"]]):
return True
else:
all_cap[cap_id]["vitals"].append((vital, value))
return False