前方高能--统计一列表中的所有变量类型出现的次数
my_list = [1,2,3.5,3+5j,True,False,[1,2],[(1,2),("x","y")],(1,),(3,"x"),{"name":"hhq","sex":"m"},"abc","school",{True,False}]
刚看到这个题,让我想起我刚接触python时候的想法,不就是统计吗?用字典呗,没错
但是看这个列表类型好多啊,1,2,3,4,5....我眼花了
(这不是程序员该干的事啊,我太难了)
那么...有没有其他办法?当然有,正好刚复习了正则表达式,ok 动手吧!
import re d = {} def get_type(s): """获取变量类型""" p = re.search(r"'\b.*\b'", str(type(s))).group() # p此时是这样的"'str'",于是我又加了一层判断 if p: return re.search(r"\w+", p).group() for i in my_list: t = get_type(i) if t not in d: d[t] = 1 else: d[t] += 1 print(d)
完事,是不是省了好多事?
我还在想能不能用推导列表干这个事,还没想出个头绪,有想出来的不妨分享一下我哈!
学习最大的乐趣在于分享,我是绝世老中医,欢迎来诊
个人qq:1978529954