实用:python中字符串重复统计

    xiaoxiao2025-03-28  18

    要求: 1.字符表为a~z中的26个字母 2.随机挑选2个字母组成字符串,共挑选100个 3.降序输出这100个字符串及重复的次数

    from collections import OrderedDict import random lst1 = [chr(i) for i in range(ord('a'),ord('z')+1)] length = len(lst1) n = 2 lst2 = [] od = OrderedDict() for i in range(100): str1 = '' for i in range(n): index = random.randrange(length) str1 += lst1[index] else: lst2.append(str1) lst2 = sorted(lst2,reverse=True) print(lst2,end='\n\n') for k in lst2: od.setdefault(k,0) od[k] += 1 else: print(od)

    运行结果:

    ['zx', 'zk', 'zi', 'zi', 'zf', 'yv', 'ys', 'yr', 'yj', 'xq', 'xi', 'xa', 'wx', 'wu', 'wn', 'wl', 'wk', 'wa', 'vw', 'us', 'uf', 'uc', 'tw', 'tu', 'tq', 'tg', 'td', 'tb', 'sy', 'su', 'sg', 'rw', 'rn', 'rg', 're', 'qf', 'qd', 'qd', 'pv', 'ps', 'ps', 'pr', 'ph', 'ox', 'ow', 'om', 'of', 'ob', 'nt', 'nq', 'nl', 'nl', 'nd', 'mw', 'mn', 'mj', 'md', 'lu', 'le', 'lc', 'lb', 'kv', 'kg', 'jz', 'jn', 'jf', 'jf', 'ja', 'ic', 'hy', 'hn', 'hn', 'gv', 'gt', 'gt', 'fw', 'fl', 'fi', 'fb', 'ew', 'et', 'ea', 'dz', 'dt', 'ds', 'dm', 'df', 'dc', 'cu', 'co', 'cc', 'cb', 'cb', 'ay', 'ar', 'ap', 'ao', 'al', 'al', 'ac'] OrderedDict([('zx', 1), ('zk', 1), ('zi', 2), ('zf', 1), ('yv', 1), ('ys', 1), ('yr', 1), ('yj', 1), ('xq', 1), ('xi', 1), ('xa', 1), ('wx', 1), ('wu', 1), ('wn', 1), ('wl', 1), ('wk', 1), ('wa', 1), ('vw', 1), ('us', 1), ('uf', 1), ('uc', 1), ('tw', 1), ('tu', 1), ('tq', 1), ('tg', 1), ('td', 1), ('tb', 1), ('sy', 1), ('su', 1), ('sg', 1), ('rw', 1), ('rn', 1), ('rg', 1), ('re', 1), ('qf', 1), ('qd', 2), ('pv', 1), ('ps', 2), ('pr', 1), ('ph', 1), ('ox', 1), ('ow', 1), ('om', 1), ('of', 1), ('ob', 1), ('nt', 1), ('nq', 1), ('nl', 2), ('nd', 1), ('mw', 1), ('mn', 1), ('mj', 1), ('md', 1), ('lu', 1), ('le', 1), ('lc', 1), ('lb', 1), ('kv', 1), ('kg', 1), ('jz', 1), ('jn', 1), ('jf', 2), ('ja', 1), ('ic', 1), ('hy', 1), ('hn', 2), ('gv', 1), ('gt', 2), ('fw', 1), ('fl', 1), ('fi', 1), ('fb', 1), ('ew', 1), ('et', 1), ('ea', 1), ('dz', 1), ('dt', 1), ('ds', 1), ('dm', 1), ('df', 1), ('dc', 1), ('cu', 1), ('co', 1), ('cc', 1), ('cb', 2), ('ay', 1), ('ar', 1), ('ap', 1), ('ao', 1), ('al', 2), ('ac', 1)])

    案例变形:

    from collections import OrderedDict import random import string alphabet = string.ascii_lowercase n = 2 od = OrderedDict() lst1 = [''.join(random.sample(alphabet,n)) for _ in range(100)] lst1 = sorted(lst1,reverse=True) print(lst1,end='\n\n') for k in lst1: od[k] = od.get(k,0) + 1 else: print(od)

    运行结果:

    ['zv', 'zt', 'zt', 'zs', 'zq', 'zg', 'zf', 'yj', 'xl', 'xh', 'xb', 'wp', 'wj', 'wi', 'wi', 'wc', 'wc', 'vz', 'ut', 'ur', 'ul', 'uj', 'tf', 'te', 'sx', 'sv', 'sv', 'sq', 'sn', 'sm', 'rx', 'rt', 'rg', 'qy', 'qp', 'qg', 'qg', 'qg', 'qd', 'px', 'px', 'pv', 'pv', 'po', 'pl', 'pd', 'pa', 'ou', 'os', 'or', 'od', 'nx', 'nw', 'nq', 'ng', 'mu', 'mr', 'mq', 'mo', 'mg', 'ma', 'ma', 'lx', 'la', 'kn', 'kf', 'jq', 'jk', 'jk', 'jg', 'iv', 'iv', 'ib', 'hp', 'hi', 'hf', 'hb', 'gv', 'gl', 'gl', 'gk', 'gc', 'fc', 'fb', 'ey', 'eh', 'eg', 'eg', 'dx', 'dj', 'cw', 'cm', 'ca', 'ca', 'bt', 'bt', 'bl', 'bd', 'au', 'al'] OrderedDict([('zv', 1), ('zt', 2), ('zs', 1), ('zq', 1), ('zg', 1), ('zf', 1), ('yj', 1), ('xl', 1), ('xh', 1), ('xb', 1), ('wp', 1), ('wj', 1), ('wi', 2), ('wc', 2), ('vz', 1), ('ut', 1), ('ur', 1), ('ul', 1), ('uj', 1), ('tf', 1), ('te', 1), ('sx', 1), ('sv', 2), ('sq', 1), ('sn', 1), ('sm', 1), ('rx', 1), ('rt', 1), ('rg', 1), ('qy', 1), ('qp', 1), ('qg', 3), ('qd', 1), ('px', 2), ('pv', 2), ('po', 1), ('pl', 1), ('pd', 1), ('pa', 1), ('ou', 1), ('os', 1), ('or', 1), ('od', 1), ('nx', 1), ('nw', 1), ('nq', 1), ('ng', 1), ('mu', 1), ('mr', 1), ('mq', 1), ('mo', 1), ('mg', 1), ('ma', 2), ('lx', 1), ('la', 1), ('kn', 1), ('kf', 1), ('jq', 1), ('jk', 2), ('jg', 1), ('iv', 2), ('ib', 1), ('hp', 1), ('hi', 1), ('hf', 1), ('hb', 1), ('gv', 1), ('gl', 2), ('gk', 1), ('gc', 1), ('fc', 1), ('fb', 1), ('ey', 1), ('eh', 1), ('eg', 2), ('dx', 1), ('dj', 1), ('cw', 1), ('cm', 1), ('ca', 2), ('bt', 2), ('bl', 1), ('bd', 1), ('au', 1), ('al', 1)])
    最新回复(0)