佚名通过本文主要向大家介绍了求教做网页,虚心求教,求教,寇准求教,陈大慧向师父求教等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:算法求教~Python
描述:
解决方案1:
描述:
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),感觉没什么好的办法,大家看看有办法咩?
解决方案1:
print str(user).count(", %d," % 28)
解决方案2:import collections
len(collections.Counter(u[1] for u in user if u[1]))
解决方案3:sum(zip(*user)[1])
解决方案4: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})
解决方案5:Python的内置函数很强大, 多用.
len(set(list(zip( *user))[1]))
解决方案6:是这个意思吗?
a = {}
for (_,u,_) in user: a[u] = a[u] + 1 if a.has_key(u) else 1