DefaultDict Tutorial

Sort by

recency

|

1084 Discussions

|

  • + 0 comments

    from collections import defaultdict n,m,dd = map(int,input().split()),defaultdict(list)

    for i in range(n): dd[input()].append(i+1)

    for _ in range(m): print(' '.join(map(str,dd.get(input(),[-1]))))

  • + 0 comments

    The statement of this problem is so confusing... spent most of my time figure out where does the m and n come from..

    from collections import defaultdict
    
    n, m = map(int, input().split())
    
    d = defaultdict(list)
    for i in range(n):
        word = input()
        d[word].append(i + 1)
    
    for j in range(m):
        word = input()
        if len(d[word]) > 0:
            print(' '.join([str(s) for s in d[word]]))
        else:
            print(-1)
    
  • + 0 comments

    Here is my code

    from collections import defaultdict
    
    n, m = input().split()
    
    result = defaultdict(list)
    
    for index, _ in enumerate(range(int(n)),1):
        val = input()
        # result[val] = result[val].append(index) if val in result else [index]
        result[val].append(index)
        
    for _ in range(int(m)):
        b_val = input()
        if b_val in result:
            print(*result[b_val])
        else:
            print(-1)
    
  • + 1 comment

    What's wrong with below code, why all the test cases are not passing.

    from collections import defaultdict

    d=defaultdict(list)

    A = ['a','b','a','b']

    B= ['c']

    for i in B:

    if i in A:
    
        for index,j in enumerate(A):
    
            if i==j:
    
                d[i].append(index+1)
    
    else:
    
        d[i].append(int(-1))
    

    for values in d.values():

    print(*values)
    
  • + 1 comment
    # Enter your code here. Read input from STDIN. Print output to STDOUT
    len_a, len_b = input().split()
    a, b = list(), list()
    for i in range(int(len_a)+int(len_b)):
        if i < int(len_a):
            a.append(input())
        else:
            b = input()
            out = ""
            for j in range(len(a)):
                if b == a[j]:
                    out += str(j+1) + " "
            if b not in a:
                out = "-1"
            print(out)