python

***python习题##***

问题

已知列表data中有若干字符串,要求编写程序,对data中的字符串进行过滤,只输出重复字符不超过一半的字符串。


提示:以下是本篇文章正文内容,下面案例可供参考

一、分析

  1. 键盘输入字符串后需要使用split()来进行分割操作
  2. 需要引入collections中的Counter来方便计数
  3. 通过for循环来对字符串计数
  4. 通过if语句找出每个字符串中字母重复最多的
  5. 字母重复最多的那个字母重复的个数与该字符串长度进行比较决定要不要输出该字符串

二、步骤

1.引入库中方法

代码如下(示例):

from collections import Counter     #导入Counter

2.键盘输入数据

代码如下(示例):

print("输入字符串")
data=input()            #手动输入
datalist=data.split(",")    #分割字符串
data=datalist
print(data)         #输出字符串列表

代码

from collections import Counter     #导入Counter
print("输入字符串")
data=input()            #手动输入
datalist=data.split(",")    #分割字符串
#print(datalist)
data=datalist
#data=['Hello','World','python','aaabbb','cccdd']
print(data)         #输出字符串列表
for i in data:      #for循环
    a=Counter(i)        #对列表中每一个字符串进行计数
    #print(Counter(i))
    maxlen=0
    for j in a:
        #print(key,a[j])        #输出的是字母和个数,例如 "all"  输出 a 1  l 2
        if maxlen< a[j]:
            maxlen= a[j]        #得到字符串中字母重复最多的
    #print(maxlen)      #输出重复数量
    if maxlen <= len(i)/2:      #重复最多的字母的重复个数与该字符长度比较,没有超过一半则输出该字符串
        print(i)

在这里插入图片描述

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OfficialUser

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值