计算每个字符出现的次数

学习笔记,日后温习

计算每个字符的出现次数,并按照出现的顺序将其作为元组列表返回。

例如,给你一个字符串“abracadabra”,输出为

ordered_counted("abracadabra") ==[('a',5),('b',2),('r',2),('c',1),('d',1)]
解法一:


x="avfasedaggg"
def ordered_count(x):
    
    #定义一个空集合
    e={}                
    for i in x:
        e[i]=x.count(i)
#     print(e)
    #输出{'g': 3, 's': 1, 'v': 1, 'e': 1, 'f': 1, 'a': 3, 'd': 1}   结果为字典,并不是要求的元组列表
    
    #定义一个空列表
    ls1=[]
    #键值在字典中遍历
    for key in e:
        #将字典中键值对,改写到了元组中
        t=(key,e[key])
        #将元组添加到列表中
        ls1.append(t)
        
    #返回元组列表
    return ls1 
    
    
ordered_count(x)
#输出为[('g', 3), ('s', 1), ('v', 1), ('e', 1), ('f', 1), ('a', 3), ('d', 1)]

解法二:


def ordered_count(string):
    #set去重
    list_set=set(string)
    #准备空列表
    list_out=[]
    #用不重复的遍历循环
    for i in list_set:
        #用原始字符串计数
        list_out.append((i,string.count(i)))
    #返回元组列表
    return list_out
    
string='abracadabra'
ordered_count(string)
解法三

def ordered_count(s):
    counts=list(set([(c,s.count(c)) for c in s]))
    return sorted(list(counts),key=lambda x: x[1],reverse=True)

s='abracadabra'
ordered_count(s)
#输出为[('a', 5), ('b', 2), ('r', 2), ('c', 1), ('d', 1)]
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值