Home > OS >  How can i create a dictionary from 2 lists with one as the key and the other as as the value with on
How can i create a dictionary from 2 lists with one as the key and the other as as the value with on

Time:11-16

I wanna achieve this without any libraries or special functions just loops. I wanna have a main program that takes in 2 inputs which are the 2 lists and returns the dictionary like shown below.

Please enter the item names: Cans, bottles, boxes, jugs

please enter quantities : 20,34,10

output : {'Cans':'20','bottles':'34','boxes':'10','jugs':'0'}

If the list of items is longer than the quantities then the quantity becomes automatically 0 as it did with the jugs above.

CodePudding user response:

Split with comma as delimiter. Fill values with zero for a number of iterations equal to the difference in length between keys and values.

Then use dict comprehension to build your dict. This with the zip built-in function.

keys = 'a,b,c,d'

values = '1,2,3'

keys = keys.split(',')

values = values.split(',')

for i in range(len(keys) - len(values)):
    values.append('0')

print({k: v for k, v in zip(keys, values)})

Output:

{'a': '1', 'b': '2', 'c': '3', 'd': '0'}

This uses only built-in calls so it fits your requirements at best.

CodePudding user response:

item_names = ['Cans', 'Bottles', 'boxes', 'jugs']
quantities = [20, 34, 10]
output_dict = {}

for i, item in enumerate(item_names):
    if i > len(quantities) - 1:
         output_dict.update({item : 0})
    else:
         output_dict.update({item : quantities[i]})

CodePudding user response:

a = list(input().split(','))
b = list(map(int, input().split(',')))

res = {}

for i in range(len(a)):
    res[a[i]] = b[i] if i < len(b) else 0
print(res)

CodePudding user response:

list1 = ['cans','Bottles','Boxes','Jugs']
list2 = [1,2,3]

res = {}

for i, element in enumerate(list1):
    try:
        res[element] = list2[i]
    except IndexError:
        res[element] = 0
        
print(res)
    
  • Related