冒泡排序原理:依次比较两个相邻的元素,如果顺序错误就把他们交换过来
1.一维数组冒泡排序
1 l = [2, 1, 3, 6, 45, 23, 4, 7] 2 for i in range(len(l)-1): #这个循环负责总共需要多少趟 3 for j in range(len(l)-1-i): #这个循环负责每趟里面相邻2个元素交换 4 if l[j] > l[j+1]: 5 l[j], l[j+1] = l[j+1], l[j] #满足条件交换位置 6 print(l)
2.冒泡排序小练习
1 f = open(‘数据.txt‘, encoding=‘utf-8‘) 2 info = {} 3 for line in f: 4 if line.strip(): 5 name = line.split()[1] 6 km = line.split()[-1] 7 if km.isdigit(): 8 km = int(km) 9 else: 10 km = float(km) 11 info[name] = km 12 13 data = list(info.items()) #转成二维数组,每个数组里面是个元祖 14 for i in range(len(data)-1): #二维数组冒泡排序 15 for j in range(len(data)-1-i): 16 if data[j][-1] < data[j+1][-1]: #二维数组交换位置 17 data[j], data[j+1] = data[j+1], data[j] 18 print(data) 19 20 count = 1 21 f2 = open(‘排序.txt‘, ‘w‘, encoding=‘utf-8‘) 22 for name, km in data:#循环二维数组 23 msg = (‘%s. %s %s\n‘ % (count, name, km)) 24 f2.write(msg) 25 count += 1 26 f.close() 27 f2.close()
3.交换变量
# python中交换2个变量的值,不需要引入第三方变量 a = 1 b = 2 a, b = b, a #交换2个变量 print(a, b) c = 3 a, b, c = c, a, b #交换多个变量 print(a, b, c)
4.三元表达式
1 a = 1 2 sex = ‘男‘ if a == 1 else ‘女‘ #三元表达式 3 print(sex)
5.列表生成式
1 l = [1, 5, 7, 6, 32, 567, 45, 897] 2 l2 = [i for i in l] #把每次循环的结果保存到list里 3 l3 = [str(i) for i in l] 4 l4 = [str(i)+‘km‘ for i in l] 5 l5 = [str(i)+‘km‘ for i in l if i >= 30] 6 print(l2) 7 print(l3) 8 print(l4) 9 print(l5)
原文:https://www.cnblogs.com/zhangxiaowai/p/12838923.html