一、冒泡算法(排序):

需求:请按照从小到大对列表进行排序

思路:相邻两个值进行比较,将较大的值放在右侧,依次比较!

li = [22,867,33,11111,6,97,13]
print li
for n in range(1,len(li)-1):
for m in range(len(li)-n):
num1 = li[m]
num2 = li[m+1]
if num1 > num2:
temp = li[m]
li[m] = num2
li[m+1] = temp
print li
 

二、杂记:

 #global 定义全局变量
 
with open('ha') as obj: #将文件名‘ha’重命名为 obj
 
空列表 空字符 ,bool 返回False
s =""
bool(s)
False


json  外部单引号,内部必须为双引号:
import json
s = '["11","22","33"]'
json.loads(s)
 
s = "123"   str
s2 = u"中" unicode \ uUDFK9
 
 
三、内置函数:
#简化的 if   else ,三元运算
#简化的函数定义,lambda
1、处理简单逻辑
2、自动return
 
def func(arg):
        return arg + 1
result = func(100)
print result
 
func2 = lambda arg:arg + 1
result = func2(1000)
print result
 
 

#map  所有元素操作

 

#遍历序列,对序列中每个元素进行操作,最终获取新的序列。

#列表中每个元素加10
l1 = [33,66,88]
l2 = [3,6,8]
l3 = [1,2,3]
def func3(a1,a2,a3):
return a1 + a2 + a3
new_list = map(func3,l1,l2,l3)
print new_list

print map(lambda a1,a2,a3:a1+a2+a3,l1,l2,l3)

#filter  过滤,获取指定元素集合

对于序列中的元素进行筛选,最终获取符合条件的序列

 

 


lii = [11, 22, 33,44]
new_list = filter(lambda arg: arg > 22, lii)
print new_list

 

#reduce  累计操作

对于序列内所有元素进行累计操作

 

 

new_list1 = reduce(lambda a1,a2:a1 + a2,lii,10000)   #尾部的10000为基数
new_list2 = reduce(lambda a1,a2:a1 * a2,lii,10000)

print new_list1
print new_list2


四、yield生成器

#记住上一次操作,下次再执行时,继续执行

#函数内,return,函数执行完毕
def func():
yield 1
yield 2
yield 3

for i in func():
print i


#模拟range  (数据库连接池可用)


def nrange(num):
temp = -1
while True:
temp = temp + 1
if temp >= num:
return
else:
yield temp
for i in nrange(10):
print i


五、装饰器







 





 


 
 
 

 

 
 
 
 
 
 
 
 
posted on 2015-11-20 13:42  情有独钟、  阅读(96)  评论(0)    收藏  举报