Sort by

recency

|

1308 Discussions

|

  • + 0 comments

    sorted() with reverse=True is reversing list completely! So you letters with same freq are on inverted order - changing freq to negative do the trick

  • + 0 comments
    def char_count_dict(s):
        d = {}
        for c in s:
            d[c] = 1 if c not in d else d[c] + 1
        return d
    
    if __name__ == '__main__':
        s = input()
        char_counts = char_count_dict(s)
        sorted_dict = dict(sorted(char_counts.items()))
        reverse_dict = {}
        for k,v in sorted_dict.items():
            if v not in reverse_dict: reverse_dict[v] = []
            reverse_dict[v].append(k)
        reverse_sorted_dict = dict(sorted(reverse_dict.items(), reverse=True))
        line_count = 0
        break_outer = False
        for v,k in reverse_sorted_dict.items():
            for i, ki in enumerate(reverse_sorted_dict[v]):
                print(str(reverse_sorted_dict[v][i]) + " " + str(v))
                line_count += 1
                if line_count == 3: 
                    break_outer = True
                    break
            if break_outer:
                break
    
  • + 0 comments

    from collections import Counter s=input() freq_let=Counter(s) for entry in freq_let.most_common(3): print(*entry)

    In this question by using most_common makes the code very understandable and is less time taking....

  • + 0 comments

    u just calculate the words frequency convert them to list sort them alphabetically later sort them value based return the top three items

    s = input()
        d={}
        for i in s:
            if i not in d:
                d[i]=1
            else:
                d[i]+=1
        items = list(d.items())
    
        items.sort()
        for i in range(len(items)):
            for j in range(len(items)-1-i):
                if items[j][1] < items[j+1][1]:
                    items[j], items[j+1] = items[j+1], items[j]
        for ch, freq in items[:3]:
            print(ch, freq)
    
  • + 1 comment
    from collections import Counter
    
    
    if __name__ == '__main__':
    s = input().strip()
    ctr = Counter(s)
    for key, item in sorted(ctr.items(), key=lambda x: (-x[1], x[0]))[:3]:
        print(f"{key} {item}")