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

python测试开发django-171.ORM查询之exact和iexact

Python3-2020-测试开发-11- 循环

Python3-2020-测试开发-11- 循环

虫师Selenium2+Python_12BDD框架之Lettuce入门