3 回答
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())])
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如果需要保留列表中字符串的顺序,您可以使用。
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}
添加回答
举报