DefaultDict Tutorial

Sort by

recency

|

1123 Discussions

|

  • + 0 comments

    from collections import defaultdict

    if name == 'main':
    N = list(map(int, input().split())) d = defaultdict(list) for i in range(N[0]): letter = input() d[letter].append(int(i+1)) #print(d)

    for i in range(N[1]):
        letter = input()
        if letter in d.keys():
            print(*d[letter])
        else:
            print(-1)
    

    purchase_order(arr, sizes)

  • + 0 comments

    This code passes half the test cases but fails the other half. Any ideas on why?

    # # Enter your code here. Read input from STDIN. Print output to STDOUT
    from collections import defaultdict
    A, B = input().split()
    listA = []
    listB = []
    for i in range(int(A)):
        item = input()
        listA.append(item)
    for i in range(int(B)):
        item = input()
        listB.append(item)
    b_in_a = defaultdict(list)
    for i in range(len(listB)):
        if listB[i] not in listA:
            b_in_a[listB[i]] = -1
        else:
            for j in range(len(listA)):
                if listB[i] == listA[j]:
                    b_in_a[listA[j]].append(j+1)
    for key, value in b_in_a.items():
        print(*value)  # The * operator unpacks the list and separates elements by spaces
    
  • + 0 comments
    from collections import defaultdict
    
    size_A, size_B = map(int, input().split())
    
    occurrences: dict[str, list[int]] = defaultdict(list)
    
    for i in range(size_A):
        word_A = input()
        occurrences[word_A].append(i + 1)
    
    for _ in range(size_B):
        word_B = input()
        if word_B in occurrences:
            print(*occurrences[word_B])
        else:
            print(-1)
    
  • + 0 comments

    from collections import defaultdict

    n, m = map(int, input().split())

    d = defaultdict(list)

    for i in range(1, n+1): word = input() d[word].append(i)

    for j in range(1, m+1): word = input()
    print(* d[word] if d[word] else [-1])

  • + 0 comments
    # Enter your code here. Read input from STDIN. Print output to STDOUT
    from collections import defaultdict
    
    n, m  = map(int, input().split())
    
    groups = defaultdict(list)
    for _ in range(n):
        groups["A"].append(input())
        
    for _ in range(m):
        groups["B"].append(input())
    
    for char in groups["B"]:
        
        if (char not in groups["A"]):
            print(-1, end=" ")
            
        for x in range(len(groups["A"])):
            if(char == groups["A"][x]):
                print((x + 1), end=" ")
        
        print('')