【问题标题】:Counting occurence of each key计算每个键的出现次数
【发布时间】:2021-05-25 18:21:28
【问题描述】:

我有以下用户

users = [
  { username: "user1", state: "USA" },
  { username: "user2", state: "Canada" },
  { username: "user3", state: "China" },
  { username: "user4", state: "China" },
  { username: "user4", state: "USA" },
];

我想计算每个状态的出现次数并将其连同其值一起打印出来。 我的输出应该是这样的

USA, 2
Canada,1
China,2

我在 python 中使用了计数器,但遇到了问题。

users = [
  { username: "user1", state: "USA" },
  { username: "user2", state: "Canada" },
  { username: "user3", state: "China" },
  { username: "user4", state: "China" },
  { username: "user4", state: "USA" },
];
from collections import Counter

counts = Counter(c for c in 'users' if c in 'USA, Canada, China')
for k,v in counts.iteritems():
    print(k,v)

【问题讨论】:

  • 您面临哪些问题?
  • name 'username' not defined 是错误
  • .iteritems() 是一个 python 2.7 函数。已重命名为.items()
  • @12944qwerty 感谢您的帮助

标签: python python-3.x counter


【解决方案1】:

语法{ username: "user1", state: "USA" }, 仅适用于javascript,在python 中,您也需要在键周围加上引号:{"username": "user1", "state": "USA" },


你还迭代'users',这是一个字符串,你需要使用你的变量users,然后用c['part']取状态部分

from collections import Counter

users = [
    {"username": "user1", "state": "USA"}, {"username": "user2", "state": "Canada"},
    {"username": "user3", "state": "China"}, {"username": "user4", "state": "China"},
    {"username": "user4", "state": "USA"},
]
counts = Counter(c['state'] for c in users)

for k, v in counts.items():
    print(k, v)

# iterate on descending count order
for k, v in counts.most_common():
    print(k, v)

【讨论】:

    猜你喜欢
    • 2015-09-06
    • 2020-04-19
    • 2016-01-24
    • 1970-01-01
    • 2021-01-14
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多