Hello new to programming and python here. I'm trying to make a program that will take a list of keys and values; then add those items to a dictionary. The program should check each value against current values in a dictionary before appending it to the key. Here is my code so far.
finalList= {'turtle':['turtle10']}
keyList = ['turtle','cat','mouse','dog']
valueList =['turtle1','turtle2','turtle1','cat1','cat2','dog','dog1']
for i in keyList:
finalList[i]= []
for items in finalList.keys():
#print('***Keys***' items)
for elements in valueList:
#print('***Values***' elements)
res = not any(finalList.values())
if items in elements:
if elements not in finalList.values():
finalList[items].append(elements)
print(finalList)
Output = {'turtle': ['turtle1', 'turtle2', 'turtle1'], 'cat': ['cat1', 'cat2'], 'mouse': [], 'dog': ['dog', 'dog1']}
Why did my final if statement not check the values already in the dictionary? And if there is a better way to do them please let me know. I know this community is filled will seasoned developers; but I am clearly not, so please take it easy on me. THANK YOU!
CodePudding user response:
In your last if there should be:
if elements not in finalList[items]:
rather than
if elements not in finalList.values():
CodePudding user response:
You can make this more concise with dictionary and set comprehension:
finalList = {i : list({j for j in valueList if i in j}) for i in keyList} #Actually a dictionary but whatever
Output:
{'turtle': ['turtle1', 'turtle2'],
'cat': ['cat2', 'cat1'],
'mouse': [],
'dog': ['dog', 'dog1']}