DefaultDict Tutorial

Sort by

recency

|

1105 Discussions

|

  • + 0 comments
    from collections import defaultdict
    
    m,n=map(int,input().split())
    
    d=defaultdict(list)
    
    for i in range(m):
        d['A'].append(input())
            
    for i in range(n):
        d['B'].append(input())
        
        
    for word in d['B']:
        indexes = [i+1 for i,x in enumerate(d['A']) if x == word]
        if indexes:
            print(*indexes)
            
        if word not in d['A']:
            print(-1)
    
  • + 0 comments

    Without defalutdict

    n, m = input().split()
    
    group_A = []
    group_B = []
    
    for i in range(int(n)):
        group_A.append(input())
    for i in range(int(m)):
        group_B.append(input())
    		
    for elementB in group_B:   
        
        indices= [str(i+1) for i, elementA in enumerate(group_A) if elementA == elementB]
        if indices:
            print(" ".join(indices))    
        else:
            print("-1")
            
    
  • + 0 comments
    from collections import defaultdict
    
    n, m = map(int, input().split())
    word_to_indices = defaultdict(list)
    
    for i in range(n):
        word_to_indices[input()].append(i + 1)
    
    for _ in range(m):
        result = word_to_indices[input()]
        if len(result) == 0:
            print(-1)
            continue
    
        print(*result)
    
  • + 0 comments
    from collections import defaultdict
    
    if __name__ == '__main__':
        n, m = map(int, input().split())
        words_dict = defaultdict(list)
        for i in range(n):
            words_dict['A'].append(input())
            
        for i in range(m):
            words_dict['B'].append(input())
            
        for word in words_dict['B']:
            indexes = [i+1 for i, x in enumerate(words_dict['A']) if x == word]
            if indexes:
                print(*indexes)
            
    
        if word not in words_dict['A']:
            print(-1)
    
  • + 0 comments
    # my solution uses enumerate() to create the list of indices to be printed. If a word/letter is not found in group A, minus one is printed instead.
    from collections import defaultdict
    
    d = defaultdict(list)
    n, m = input().split()
    for i in range(int(n)):
        d["A"].append(input())
    for j in range(int(m)):
        d["B"].append(input())
        
    for letter in d["B"]:
        if letter in d["A"]:
            b_list = [str(i+1) for i, x in enumerate(d["A"]) if x == letter]
            print(" ".join(b_list))
        else:
            print(-1)