第十四课、语句及数据结构应用

一、最基本的迭代 

# 字符串 
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('
 xixixxxxi')


with 打开文件后写入数据后无需关闭操作, 非常有用. 
原文地址:https://www.cnblogs.com/huiming/p/5560866.html