这是我的代码
#this is for the max Day of a month, without leap year
day_month = {'Janauary': 31, 'February':28, 'March':31, 'April':30, 'May':31, 'June':30, 'July':31, 'August':31, 'September':30, 'October':31, 'November':30, 'December':31}
#this dict i get as Input
myCalendar = {'April':30, 'July':10, 'May':20, 'February':29, 'August':31, 'August':13, 'August':21}
#this is the desired month to work with
month = 'August'
print(month in myCalendar) # it shows that month exists in myCalendar
print(myCalendar[month]) # this give the value
print('')
for i in myCalendar:
print(str(i) + ' ' + str(myCalendar[i]))
这些是输出
True
21
#result of for loop
April 30
July 10
May 20
February 29
August 21 #the problem is this one, I want to have the max value of those three values
对于8月,我有{'August':31,'August':13,'August':21}我想要的是最大值'August':31或更好的{'August':[13 ,21,31]}
我知道在Python Dict中只接受一个相同的键
不允许使用软件包/库
我可以上课吗?
谢谢
答案 0 :(得分:0)
我想拥有的是最大价值
要处理这些类型的冲突,您首先要检查密钥是否已经存在
if month in myCalender.keys():
如果确实存在,您将使用两个输入的最大值重新声明它
myCalender[month] = max(myCalender[month], day_month[month] )
或更佳的{'August':[13,21,31]}
要执行此操作,请执行与上述相同的操作,以检查密钥是否已存在
如果这样做,则将新值附加到字典内的列表中
myCalender[month] = list(myCalender[month]).append(day_calender[month])
答案 1 :(得分:0)
这里是表示数据的一种方法,因此它是保留所有原始数据的合法Python代码:
myCalendar = [('April', 30), ('July',10), ('May',20), ('February',29), ('August', 31), ( 'August', 13), ('August', 21)]
如果这样做,则可以使用以下代码生成所需的结构:
myCalendar = [('April', 30), ('July',10), ('May',20), ('February',29), ('August', 31), ( 'August', 13), ('August', 21)]
myIndex = {}
for k, v in myCalendar:
if k not in myIndex:
myIndex[k] = []
myIndex[k].append(v)
print(myIndex)
结果:
{'April': [30], 'July': [10], 'May': [20], 'February': [29], 'August': [31, 13, 21]}