您的位置:首页 > 编程语言 > Python开发

python 实验6 字符串练习(二)

2016-04-21 19:32 288 查看
一、实验要求

字符串 a = "aAsmr3idd4bgs7Dlsf9eAF"

1.请将 a 字符串的数字取出,并输出成一个新的字符串。

2.请统计 a 字符串出现的每个字母的出现次数(忽略大小写,a 与 A 是同一个字母),

并输出成一个字典。 例 {'a':3,'b':1}

3.请去除 a 字符串多次出现的字母,仅留最先出现的一个,大小写不敏感。例

'aAsmr3idd4bgs7Dlsf9eAF',经过去除后,输出 'asmr3id4bg7lf9e'

4.按 a 字符串中字符出现频率从高到低输出到列表,如果次数相同则按字母顺序排列。

二、新知识

1.re模块的filter函数,对序列做过滤处理;digit判断序列是否全为数字;两者组合可筛出数组里的数字:filter(str.isdigit, char)

2.string模块:http://www.cnblogs.com/rollenholt/archive/2011/11/25/2263722.html

3.a=a.lower()变小写;

4.新建字典并赋值:

    for i in string.lowercase:  #lowercase:小写字母 count:统计频率

          dict[i]=a.count(i)

5.set函数:

       给出一个有若干字符串组成的列表,set()函数返回列表中不同的字符串组成的集合。把它想象成一个for循环可以帮助理解。从列表出拿出第一个元素,放到集合。第二个,第三个,第四个。第五个,等等, 它已经在集合里面了,因为Python 集合不允许重复,所以它只被列出了一次。第六个。第七个又是一个重复的,所以它只被列出了一次。原来的列表甚至不需要事先排好序。

给出一个字符串列表, ''.join(a_list)将所有的字符串拼接成一个。

6.b.sort() 排序

三、代码

# -*- coding: cp936 -*-

# -*- coding: utf-8 -*-

# -*- coding:gb2312 -*-

import sys

import re

import string

if __name__=="__main__":

     a = "aAsmr3idd4bgs7Dlsf9eAF"

     num=filter(str.isdigit, a)#filter函数:对序列做过滤处理,将a中的字符一个一个判断;isdigit函数:只为数字时返回true

     print num

     

     a=a.lower()#全部转成小写

     dict={}

     for i in string.lowercase:  #lowercase:小写字母 count:统计频率

          dict[i]=a.count(i)

          if a.count(i)==0:

               del dict[i]

     print dict  #为什么不按字母顺序出来结果?因为lowercase遍历26个字母,把字符里没有的字母也打出来了

     b="".join(set(a))#乱序乱的不正常????

     print b #set()去除重复对象

     b=list(a)  

     b.sort() #给定字符串排序,不排序可能移除不完整  如果要求乱序,怎么办???

     for m in b:  

        while b.count(m) > 1:  

          b.remove(m)  

     b= "".join(b)

     print b

     for i in string.lowercase:

         dict[i]=a.count(i)

         if a.count(i)!
4000
=3:

              del dict[i]

     list1=dict.keys()

     list1.sort

     for i in string.printable:

          dict[i]=a.count(i)

          if a.count(i)!=2:

              del dict[i]

     list2=dict.keys()

     list2.sort

     for i in string.printable:

          dict[i]=a.count(i)

          if a.count(i)!=1:

              del dict[i]

     list3=dict.keys()

     list3.sort

     print list1+list2+list3,

     

     

          

     

     

     

     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: