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,
字符串 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,
相关文章推荐
- Python结合BeautifulSoup抓取知乎数据
- Python nltk载入自己的中文语料库的两种方法 for Windows7
- Python 高亮设置(转)
- pigpio-12c-python 学习笔记
- Python 装饰器
- python 字符串常用操作汇总
- windows下使用python的scrapy爬虫框架,爬取个人博客文章内容信息
- python实现线程池
- python基础篇
- python编程关键字
- Python下的协程
- Python 中文编码
- Python Paste Deployment
- python Queue模块
- python 里面的 client_sender
- Python目录操作
- Python文件基本操作
- Python文件操作
- Python中OS模块
- python安装依赖modules pysnmp pyasn1.type pexpect configparser