【发布时间】:2015-10-30 11:55:21
【问题描述】:
d=[[(u'BAKING', 51)], [(u'ACCESS', 4)],[(u'CUTE', 2)], [(u'RED', 3)],[(u'FINE', 59)], [(u'ACCESS', 49)],[(u'YOU', 97)], [(u'THANK', 41)]]
我有一个包含单词及其对应频率的元组列表。现在如何从这些中找到前 3 个频率词?
t=[]
for items in d:
k=items[0]
print len(k)
for j in k:
t.append(j)
print t
m=[t[i:i+2] for i in range(0, len(t), 2)]
print m
j=Counter(m)
这给了我错误,m 是列表,它应该是字典 :( 如何将其转换为字典
【问题讨论】:
-
我尝试使用 counter() 但没用
-
另外,如果有像这里这样的重复 [(u'ACCESS', 4)], [(u'ACCESS', 49)] 那么它应该把它的频率加起来 [(u'ACCESS', 53)],我很困惑怎么做!
-
我们可以看看您涉及
counter()的尝试吗?这将向读者表明您已经尝试过:-)。 -
t=[] for items in d: k=items[0] print len(k) for j in k: t.append(j) print t m=[t[i:i+2 ] for i in range(0, len(t), 2)] 打印 m
-
@KanikaSingh:我在下面添加了一个解决方案,该解决方案也考虑了重复项。请让我知道这是否解决了您的问题以及您是否需要进一步解释!
标签: python list python-2.7 tuples