华为机试题,字符串大小写转换

一个字符串使用"-"分隔成了四部分,str1 = "sdfg-sdDE-sdgWUY-ABCdh",第一部分不变,后面三部分组成的一个字符串,指定分隔字符串长度n,按照n分隔字符串得到一个字符串列表,假设n为4,得到列表["sdDE","sdgW","UYAB","Cdh"],假设n为20,得到列表["sdDEsdgWUYABCdh"],判断字符串中的每一个字符串中大写字母和小写字母的个数,如果小写字母个数多,就把字符串全部转为小写,如果大写字母个数多,就把字符串全部转为大写,一样多不改变字符串。大小写转换完成后,将列表中的字符串与原来的第一部分重新拼接"sdfg-sdDE-sdgw-UYAB-cdh"
str1 = "sdfg-sdDE-sdgWUY-ABCdh"
list1=str1.split('-')#将字符串str1切割成列表list1
list2=list1[1:]#依据题意舍去第一部分,保留剩余部分
str2=''.join(list2) #把列表list2以''转成字符串str2
print(str2)
n=4
list3=[]
for i in range(0,len(str2),n):#依据题意,确定i的值
    list3.append(str2[i:i+n])#利用索引值[i:i+n]取片段放入list3中
print(list3)
for j in range(len(list3)):#遍历list3
    str3=list3[j]#遍历字符串赋值给str3
    count_lower=0#统计小写个数
    count_upper=0#统计大写个数
    for k in str3:#遍历str3中字母
        if 'a'<k<'z':#判断小写
            count_lower+=1
        else:#判断大写
            count_upper+=1
    if count_lower>count_upper:#如果小写多
        str3=str3.lower()#改小写
        list3[j]=str3#改后的str3重新赋值给list[j]
    elif count_lower<count_upper:#如果大写多
        str3=str3.upper()#改大写
        list3[j]=str3#改后的str3重新赋值给list[j]
print(list3)
str4='-'.join(list3) #把列表list3以'-'分隔成字符串str4
print(list1[0]+'-'+str4)#重新拼接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值