我想解决一个物流问题,旅行日程。这是我现有的代码。
import array as arr
class Solution():
def __init__(self):
pass
def printItenary(self,d):
reverse_d = dict()
for i in d:
if i and d[i]:
reverse_d[d[i]] = i
else:
print("Innvalid Input")
return
for i in reverse_d:
if reverse_d[i] not in reverse_d:
starting_pt = reverse_d[i]
break;
while(starting_pt in d):
print(starting_pt,"->",d[starting_pt],end=", ")
starting_pt = d[starting_pt]
if __name__=="__main__":
d = dict()
d["Chennai"] = "Banglore"
d["Bombay"] = "Delhi"
d["Goa"] = "Chennai"
d["Delhi"] = "Goa"
obj = Solution()
obj.printItenary(d)
问题是如果我再加一行
d["Chennai" ="Delhi"
那么单个条目有多个值,所以我想给出一个条件,如果给出了多个输入,那么我将根据字典顺序给出优先级,除非它不是在一个死胡同(如果它是最后一个停止)。
所以我的问题是,如何比较字典数据并根据这些条件更新值
您需要确保处理了键不存在的边缘情况。如果您希望它不区分大小写,那么在比较中也使用str.lower()
。
new_val = ...
val = d.get('Chennai')
val = min(val, new_val) if val else new_val
d['Chennai'] = val
要确定字典顺序,可以使用ord()
函数;奥德(b)比;word ('a') == True
if d["Chennai"]:
if ord(new_value[0]) > ord(d["Chennai"][0]):
d["Chennai"] = new_value
else:
d["Chennai"] = new_value