玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容

新手Python算法统计list及tuple应用有什么好方法

user = [('zhang',28,183),('wang',28,165),('li',26,170),('zhao',24,177)]

list中每个tuple值含义依次为:姓名,年龄,身高
问:
怎么能快速的统计出user中有多少种年龄?

我只想到统计具体某个年龄的数量,如28:

len([u for u in user if u[1]==28])

但是对于统计所有年龄的总数(比如统计出user中有3种年龄,分别是28,26,24),感觉没什么好的办法,大家看看有办法咩?

import collections
len(collections.Counter(u[1] for u in user if u[1]))
print str(user).count(", %d," % 28)
from collections import Counter
user = [('zhang',28,183),('wang',28,165),('li',26,170),('zhao',24,177)]
cnt = Counter()
for u in user:
    cnt[u[1]] += 1
print cnt
result:
Counter({28:2,26:1,24:1})
sum(zip(*user)[1])

Python的内置函数很强大, 多用.

   len(set(list(zip( *user))[1]))

是这个意思吗?

a = {}
for (_,u,_) in user:  a[u] = a[u] + 1 if a.has_key(u) else 1

玩蛇网文章,转载请注明出处和文章网址:http://www.iplaypy.com/wenda/wd19648.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年06月01日 - 10时09分24秒 发布自玩蛇网

我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules