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

来源:互联网 发布:江西师范大学软件学院 编辑:程序博客网 时间:2024/06/06 01:03

一、实验要求

字符串 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)!=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,
     




     
          


     
     
     
     







0 0
原创粉丝点击