从python Collection获取价值和密钥

时间:2017-08-23 12:30:31

标签: python-2.7

我正在努力从for循环中的Counter中获取单值和密钥对

我有以下代码:

test= ["test1", "test2", "apps1", "apps2", "random"]

return collections.Counter(i[:4] for i in test)

我得到以下内容: {     " rand":1,     "测试":2,     " apps":2, }

我想知道有没有办法获得这些价值观&如果是for循环,则基于该位置的键,因为我试图将它添加到角度应用程序的json对象中。

我想要创建的JSON对象看起来像这样,

returnObject = []
            for i in range(len(collections.Counter(i[:4] for i in test))):
                tempObject ={
                'value': #add counter value in pos i,
                'color': 'rgb(0,19,255)',
                'label': #add counter key in pos i,
                'order': i+1,
                }
                returnObject.append(tempObject)

            print returnObject  

对不起,我是新手,已经尝试了很多不同的事情,但提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

使用range(len)不是循环容器的规范方式,对dict类型不是很有用。

您可以直接遍历容器,例如:

counts = collections.Counter(i[:4] for i in test)
for key in counts:
    print(key, counts[key])

或者更直接地使用.items()

counts = collections.Counter(i[:4] for i in test)
for key, value in counts.items():
    print(key, value)