为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中迭代列表和匹配

在 Python 中迭代列表和匹配

梵蒂冈之花 2022-06-14 09:40:05
我有一个包含字符串值的列表: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)这就是我迷路的地方。请帮忙。
查看完整描述

3 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

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

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())])


查看完整回答
反对 回复 2022-06-14
?
杨魅力

TA贡献1811条经验 获得超6个赞

正如评论所暗示的那样,我发现很难理解某些行的预期结果和用法。下面是可以帮助您以不同方式实现结果的代码。


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

d = {}

# Creating a dictionary to maintain uniqueness of the strings as keys

# And maintain the count of occurrence as values

for i in iwx:

    if i in d:

        d[i] += 1

    else:

        d[i] = 1

print(d)

# d = {'Ok': 1, 'Hi': 4, 'He': 1, 'Hy': 3, 'Hl': 1, 'Gb': 1}

OrderedDict如果需要保留列表中字符串的顺序,您可以使用。


查看完整回答
反对 回复 2022-06-14
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

我相信您的目标是计算每个值存在多少次:


这应该工作:



ix = []


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


occurences = {}



for i in range(0, len(iwx)):

        if iwx[i] not in occurences:

            occurences[iwx[i]] = 1

        else:

            occurences[iwx[i]] += 1


print(occurences)

结果是:


{'Ok': 1, 'Hi': 4, 'He': 1, 'Hy': 3, 'Hl': 1, 'Gb': 1}


查看完整回答
反对 回复 2022-06-14
  • 3 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信