首页 > 解决方案 > 在 Python 中迭代列表和匹配

问题描述

我有一个包含字符串值的列表:

iwx = ['Ok', 'Hi', 'Hi', 'Hi', 'Hi', 'He', 'Hy', 'Hy', 'Hy', 'Hl', 'Gb']

我正在努力做到这一点,所以我迭代了它压缩它的列表中的字符串。我的预期输出是:

['Ok', 'Hi'*4, 'He', 'Hy'*3, 'Hl', 'Gb']

我的代码是:

ix = []

iwx = ['Ok', 'Hi', 'Hi', 'Hi', 'Hi', 'He', 'Hy', 'Hy', 'Hy', 'Hl', 'Gb']

iwy = list(enumerate(iwx))

for i,x in iwy:
    n = 0
    n += 1
    tz = [iwy[x:i+11] for x in range(0, len(x))]
    print(tz)

这就是我迷路的地方。请帮忙。

标签: pythonmatch

解决方案


我不确定这是否是您想要的,但如果您希望只是计算每个字符串出现的次数,这可能是一个解决方案:

from collections import Counter
[(i,j) for i,j in zip(Counter(iwx).keys(), Counter(iwx).values())]

请注意,如果您想使用字典(为了方便起见),只需使用:

dic_name = dict([(i,j) for i,j in zip(Counter(iwx).keys(), Counter(iwx).values())])

推荐阅读