我想将username
和dateTimeHold
添加到bigData,如果已经存在,那么我只想添加dateTimeHold
,否则添加username
和{{1} }。
当我尝试使用此代码时,它只是被覆盖:
dateTimeHold
输出:
dateTimeHold = ('09-07-2019', '09.00 - 16.00', 'Red')
username = 'James'
bigData = {
'Peter': [('08-07-2019', '06.00 - 07.00', 'Blue')],
'James': [('08-07-2019', '06.00 - 07.00', 'Blue')]
}
if username != bigData.keys():
listTime = []
listTime.append(dateTimeHold)
bigData[username] = listTime
else:
bigData[username][listTime].append(dateTimeHold)
我想要它做什么:
{
'Peter': [('08-07-2019', '06.00 - 07.00', 'Blue')],
'James': [('09-07-2019', '09.00 - 16.00', 'Red')]
}
答案 0 :(得分:0)
正确的税法
if username not in bigData.keys():
bigData[username] = [dateTimeHold]
else:
bigData[username].append(dateTimeHold)
关于您的条件
使用if username != bigData.keys():
始终是正确的,因为您的变量用户名中的任何内容都将与dict_keys(['Peter', 'James'])
不同。
如果要查看列表中是否包含值,则应改用in
或not in
'Peter' != bigData.keys()
是 True 'Peter' not in bigData.keys()
是错误 关于其他人
sintax不正确,您的else范围中不存在listTime。
除了检查adding new keys in dict的内容之外,还可以了解bigData[username][listTime].append(dateTimeHold)
为何产生错误以及为什么bigData[username].append(dateTimeHold)
有效。
答案 1 :(得分:0)
尝试代码,并查看行中的更正内容
dateTimeHold = ('09-07-2019', '09.00 - 16.00', 'Red')
username = 'James'
bigData = {'Peter': [('08-07-2019', '06.00 - 07.00', 'Blue')],
'James': [('08-07-2019', '06.00 - 07.00', 'Blue')}
if username not in bigData.keys(): #1. Check for the username in the keys
listTime = []
listTime.append(dateTimeHold)
bigData[username] = listTime
else:
bigData[username].append(dateTimeHold) #2.right way to append