1. 已知字符串 a = "aAsmr3idd4bgs7Dlsf9eAF",要求如下 1.1 请将a字符串的大写改为小写,小写改为大写。 a = 'aAsmr3idd4bgs7Dlsf9eAF' b = [] for i in xrange(len(a)): if a[i].isupper(): b.append(a[i].lower()) elif a[i].islower(): b.append(a[i].upper()) else: b.append(a[i]) print ''.join(b) 结果: AaSMR3IDD4BGS7dLSF9Eaf 方法二: print a.swapcase() 1.2 请将a字符串的数字取出,并输出成一个新的字符串。 a = 'aAsmr3idd4bgs7Dlsf9eAF' b = [] c = [] for i in xrange(len(a)): if a[i].isupper(): b.append(a[i].lower()) elif a[i].islower(): b.append(a[i].upper()) else: c.append(a[i]) print ''.join(c) 结果:3479 方法二: a = 'aAsmr3idd4bgs7Dlsf9eAF' print ''.join([s for s in a if s.isdigit()]) 1.3 请统计a字符串出现的每个字母的出现次数(忽略大小写,a与A是同一个字母),并输出成一个字典。 例 {'a':4,'b':2} a = 'aAsmr3idd4bgs7Dlsf9eAF' b = [] c = [] for i in xrange(len(a)): if a[i].isupper(): b.append(a[i]) elif a[i].islower(): b.append(a[i].upper()) else: c.append(a[i]) d = ''.join(b) e = [] for str in set(d): e.append((str, d.count(str,0))) print dict(e) 结果: {'A': 3, 'B': 1, 'E': 1, 'D': 3, 'G': 1, 'F': 2, 'I': 1, 'M': 1, 'L': 1, 'S': 3, 'R': 1} 方法二: dict([(x,a.count(x)) for x in set(a)]) 1.4 请去除a字符串多次出现的字母,仅留最先出现的一个。例 'abcabb',经过去除后,输出 'abc' a = 'aAsmr3idd4bgs7Dlsf9eAF' b = [] for str in set(a): b.append(str) print ''.join(b) 判定:结果错误 正确结果如下 a = 'aAsmr3idd4bgs7Dlsf9eAF' a_list = list(a) # 转换成list, 主要是为了获得排序index set_list = list(set(a_list)) # 去重以后再转回list set_list.sort(key = a_list.index) # 对去重以后的list进行原先的排序 print ''.join(set_list) # 拼接成字符串 1.5 请将a字符串反转并输出。例:'abc'的反转是'cba' a = 'aAsmr3idd4bgs7Dlsf9eAF' b = list(a) b.reverse() a = ''.join(b) 结果 'FAe9fslD7sgb4ddi3rmsAa' 方法二:a[::-1] 1.6 去除a字符串内的数字后,请将该字符串里的单词重新排序(a-z),并且重新输出一个排序后的字符 串。(保留大小写,a与A的顺序关系为:A在a前面。例:AaBb) ''' 1. 要有小写字母从a-z的排序 2. 大小写不同,但值相同的字母,大写在小写的后面 ''' a = 'aAsmr3idd4bgs7Dlsf9eAF' 1.7 请判断 'boy'里出现的每一个字母,是否都出现在a字符串里。如果出现,则输出True,否则,则输 出False. a = 'aAsmr3idd4bgs7Dlsf9eAF' b = set('boy') print b for str in b: if str in a: print (str,'True') else: print (str,'Flase') 结果: set(['y', 'b', 'o']) ('y', 'Flase') ('b', 'True') ('o', 'Flase') a = 'aAsmr3idd4bgs7Dlsf9eAF' b = 'boy' u = set(a) u.update(list(b)) print len(set(a)) == len(u) 1.8 要求如1.7,此时的单词判断,由'boy'改为四个,分别是 'boy','girl','bird','dirty',请判断如上这4个字符串里的每个字母,是否都出现在a字符串里。 a = 'aAsmr3idd4bgs7Dlsf9eAF' b = set() x = ['boy','girl','bird','dirty'] for item in x: b.update(item) print b for str in b: if str in a: print (str,'True') else: print (str,'Flase') 结果: set(['b', 'd', 'g', 'i', 'l', 'o', 'r', 't', 'y']) ('b', 'True') ('d', 'True') ('g', 'True') ('i', 'True') ('l', 'True') ('o', 'Flase') ('r', 'True') ('t', 'Flase') ('y', 'Flase') 1.9 输出a字符串出现频率最高的字母 a = 'aAsmr3idd4bgs7Dlsf9eAF' b = [] for i in set(a): b.append((i, a.count(i,0))) print b 方法一: b.sort(key = lambda x:x[1], reverse = True) print b print b[0] 方法二: import operator b.sort(key = operator.itemgetter(1), reverse=True) print b print b[0] 2.在python命令行里,输入import this 以后出现的文档,统计该文档中,"be" "is" "than" 的出现次数。 import os m = os.popen('python -m this').read() m = m.replace(' ','') l = m.split(' ') print [(x,l.count(x)) for x in ['be','is','than']] 3.一文件的字节数为 102324123499123 ,请计算该文件按照kb与mb计算得到的大小。 size = 102324123499123 kb size >> 10 mb size >> 20 4.已知 a = [1,2,3,6,8,9,10,14,17],请将该list转换为字符串,例如 '123689101417'. a = [1,2,3,6,8,9,10,14,17] print str(a) print str(a)[1:-1].replace(', ','')