第十四课、语句及数据结构应用
一、最基本的迭代 # 字符串 a = 'asdfD4dfdDFSA34' for i in a: print i # 列表 b = [1,2,3,4,5,6] for i in b: print i # 元组 c = ('a','b','c','d') for i in c: print i 二、如何迭代字典 # 字典,在字典中键是唯一的 d = {'key1':'value1','key2':'value2','key3':'value3', 'key2':'value21'} print d for i in d.keys(): print i print d.keys() print d.items() for x, y in d.items(): print x, y 三、如何为字典排序 (对键进行排序) d = {'key1':'value1','key2':'value2','key3':'value3', 'key2':'value21'} key_list = d.keys() key_list.sort() for x in key_list: print x, d[x] 四、字典根据键值查找 ''' 需求:根据字典的值得到字典的键 1. 字典索引的是键,而不是值 -> 迭代,穷举 2. 字典具有唯一键,但值不一定是唯一的 3. 一个直可能对应n(n>=1)个键 ''' a = {'a':'haha', 'b':'xixi', 'c':'xiaxia', 'd':'haha', 'e':'haha'} search_str = 'haha' key_list = [] for x,y in a.items(): if y == search_str: key_list.append(x) print key_list # 下节课用函数进行封装 五、sorted排序方法再议 a = 'sFdk3ksTV4dsd' print sorted(a) r: ['3', '4', 'F', 'T', 'V', 'd', 'd', 'd', 'k', 'k', 's', 's', 's'] a = 'sFdk3ksTV4dsd' b = ''.join([x for x in a if not x.isdigit()]) 结果:'sFdkkDsTfVdstd' import string print sorted(b, key = string.upper) a = 'sFdkkDsTfVdstd' >>> sorted([string.upper(x) for x in a]) ['D', 'D', 'D', 'D', 'F', 'F', 'K', 'K', 'S', 'S', 'S', 'T', 'T', 'V'] >>> sorted(a,key=string.upper) ['d', 'D', 'd', 'd', 'F', 'f', 'k', 'k', 's', 's', 's', 'T', 't', 'V'] ''' key = string.upper 可以理解为 用string.upper这个方法,去执行列表中的每个数据. 也就是说 ''' 六、好玩的translate与maketrans a = 'i am lilei' a.replace('lilei','hanmeimei') import string # 替换和被替换的必须是相同长度,否则会报错, 将1 翻译成 a, 将 2 翻译成 b, 将 3 翻译成 c s = string.maketrans('123','abc') a = '12323423233421222' print a.translate(s) 结果 abcbc4bcbcc4babbb 分析:翻译表和replace 一个是逐个替换,还有一个是整块替换 替换之前可以先删除指定的字符 print a.translate(s,'1') 结果:'bcbc4bcbcc4bbbb' 七、一个新的语句, with f = open('d:/ttt.txt','w') f.write('i am lilei') f.close() with open('d:/ttt.txt','a') as g: g.write('\n xixixxxxi') with 打开文件后写入数据后无需关闭操作, 非常有用.