一、冒泡算法(排序):
需求:请按照从小到大对列表进行排序
思路:相邻两个值进行比较,将较大的值放在右侧,依次比较!
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
五、装饰器
浙公网安备 33010602011771号