新手Python算法统计list及tuple应用有什么好方法,pythontuple,user = [(zha


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 collectionslen(collections.Counter(u[1] for u in user if u[1]))
print str(user).count(", %d," % 28)
from collections import Counteruser = [('zhang',28,183),('wang',28,165),('li',26,170),('zhao',24,177)]cnt = Counter()for u in user:    cnt[u[1]] += 1print cntresult: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

编橙之家文章,

评论关闭