python测试开发之_字符串练习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python测试开发之_字符串练习相关的知识,希望对你有一定的参考价值。
编程学习是个漫长、逐渐累加复杂度、综合难度的一门工程。需要自我驱动,督促自己往前走。Python测试开发是本年度重点学习目标。
今天来一个字符串的练习题,重在思路,不断训练自己的思维。
题目:找出字符串中出现次数最多的字符,并输出其出现的位置
代码实现:
#encoding=UTF-8
s = "aaabbbhhiijk"
letter_count_dict={}
for i in s:
if letter_count_dict.has_key(i): #判断是否在字典中出现过
letter_count_dict[i]+=1
else: #没出现过就是1
letter_count_dict[i] = 1
print letter_count_dict
max_letter_occurrence=max(letter_count_dict.values())
#所有出现次数列出来,max函数取最大值
print max_letter_occurrence
max_occurrence_letters=[]
#空列表用来存储,因为有可能是1个或多个
for k,v in letter_count_dict.items():
if v==max_letter_occurrence:
#值=出现最大次数时
max_occurrence_letters.append(k)
#存到列表中
print max_occurrence_letters #遍历
for i in max_occurrence_letters:
max_occurrence_letter_positions = []
#存位置的列表
start_postion=0 #从0开始找
while 1: #死循环
if s.find(i,start_postion) !=-1: #!=-1表示找到了
max_occurrence_letter_positions.append(s.find(i,start_postion))
start_postion=s.find(i,start_postion)+1 #起始位置+1往后找防止记重,因为find找到后不会再找了
else: #当已查找不到目标字母来,说明所有字母都找到了
print "%s positions:%s" %(i,max_occurrence_letter_positions )
break #死循环需要加break
输出结果:
#{'a': 3, 'b': 3, 'i': 2, 'h': 2, 'k': 1, 'j': 1}
#3
#['a', 'b']
#a positions:[0, 1, 2]
#b positions:[3, 4, 5]
以上是关于python测试开发之_字符串练习的主要内容,如果未能解决你的问题,请参考以下文章
Python3-2020-测试开发-20- 面向对象之封装,继承,多态
python测试开发django-170.ORM查询之contains和icontains