Python学习笔记:嵌套循环和算法

嵌套循环

1.循环嵌套

	 1. 嵌套循环:
	 2. 
	 3. 列表生成式
	 		1-aftertax=[one*0.9 for one in beforetax]		
			2-aftertax=[循环体 for语句]
# 列表生成式
afterax=[]
beforetax = [1000,2000,3000,4000]
for one in beforetax:
    afterax.append(int(one*0.9))
print(afterax)
beforetax = [1000,2000,3000,4000]
afterax= [one*0.9 for one in beforetax] # 第一种写法
afterax= [one*0.9 for one in beforetax if one >3000] # 只扣大于3000
print(afterax)
	 3-alist.sort(默认正序)   alist.sort(reverse=True)
	 4-冒泡排序:
	    1-确认要排序的对象:alist--升序 / 降序
	5-思维扩展
		    1- alist = [3,1,7,0]
		    2- 每一次找一个最小值 不使用---min()------假设法
		    3- data = [] ------ data.append(最小值)
		    **  每一次找到 最小值要记得删除!
# 对比,按从小到大排序
alist = [9,1,4,6,0]
alist.sort()
print(alist)
print(alist[::-1])
print(alist)
alist.reverse()
print(alist)

'''
核心思路: [8,2,6,0]
    1- 每一次找一个较大值  len()-1次
    2- 相邻元素比较!    
1- 找3次较大值---最一个不就是最小值
2- 过程:
    1- 找第1个较大值---8---交换了3次
        1- [8,2,6,0] ----  8  和 2 比较  -- 8大-  交换位置--[2,8,6,0]
        2- [2,8,6,0] ----  8  和 6 比较  -- 8大-  交换位置--[2,6,8,0]
        3- [2,6,8,0] ----  8  和 0 比较  -- 8大-  交换位置--[2,6,0,8]
    2- 找第2个较大值---6---交换了2次
        1- [2,6,0,8] ----  2  和 6 比较  -- 6大-  交换位置--[2,6,0,8]
        2- [2,6,0,8] ----  6  和 0 比较  -- 6大-  交换位置--[2,0,6,8]
    3- 找第3个较大值---2---交换了1次
        1- [2,0,6,8] ----  2  和 0 比较  -- 2大-  交换位置--[0,2,6,8]
'''
#1- 确定找多少次较大值  len()-1  4次
for i in range(0,len(alist)-1):#0 1 2 3
    #2- 每次找较大值怎么找---相邻元素对比
    for j in range(0,len(alist)-1-i):
        #3- 开始交换值  前面值>后面值
        if alist[j] > alist[j+1]:
            alist[j] ,alist[j+1] = alist[j+1],alist[j]
print(alist)
发布了35 篇原创文章 · 获赞 4 · 访问量 940

猜你喜欢

转载自blog.csdn.net/qq_44891948/article/details/98735444
今日推荐