码迷,mamicode.com
首页 > 编程语言 > 详细

python测试开发之_字符串练习

时间:2017-12-16 21:18:38      阅读:204      评论:0      收藏:0      [点我收藏+]

标签: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测试开发之_字符串练习

标签:python   测试   

原文地址:http://blog.51cto.com/12802674/2051383

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!