我正在尝试创建一个函数,该函数将采用arbritrary数量的字典输入并创建包含所有输入的新字典.如果两个键相同,则该值应为包含两个值的列表.我已经成功完成了这项工作 - 但是,我遇到了dict()函数的问题.如果我在python shell中手动执行dict函数,我就可以创建一个没有任何问题的新字典; 但是,当它嵌入我的函数中时,我得到一个TypeError.这是我的代码如下:
#Module 6 Written Homework
#Problem 4
dict1= {'Fred':'555-1231','Andy':'555-1195','Sue':'555-2193'}
dict2= {'Fred':'555-1234','John':'555-3195','Karen':'555-2793'}
def dictcomb(*dict):
mykeys = []
myvalues = []
tupl = ()
tuplist = []
newtlist = []
count = 0
for i in dict:
mykeys.append(list(i.keys()))
myvalues.append(list(i.values()))
dictlen = len(i)
count = count + 1
for y in range(count):
for z in range(dictlen):
tuplist.append((mykeys[y][z],myvalues[y][z]))
tuplist.sort()
for a in range(len(tuplist)):
try:
if tuplist[a][0]==tuplist[a+1][0]:
comblist = [tuplist[a][1],tuplist[a+1][1]]
newtlist.append(tuple([tuplist[a][0],comblist]))
del(tuplist[a+1])
else:
newtlist.append(tuplist[a])
except IndexError as msg:
pass
print(newtlist)
dict(newtlist) …
Run Code Online (Sandbox Code Playgroud)