python学习笔记04:冒泡排序,三元表达式,列表生成式
冒泡排序原理:依次比较两个相邻的元素,如果顺序错误就把他们交换过来
1. 冒泡排序
一维数组冒泡排序
l = [2, 1, 3, 6, 45, 23, 4, 7] for i in range(len(l)-1): # 这个循环负责总共需要多少趟 for j in range(len(l)-1-i): # 这个循环负责每趟里面相邻2个元素交换 if l[j] > l[j+1]: l[j], l[j+1] = l[j+1], l[j] # 满足条件交换位置 print(l)
冒泡排序小练习
f = open('数据.txt', encoding='utf-8') info = {} for line in f: if line.strip(): name = line.split()[1] km = line.split()[-1] if km.isdigit(): km = int(km) else: km = float(km) info[name] = km data = list(info.items()) # 转成二维数组,每个数组里面是个元祖 for i in range(len(data)-1): # 二维数组冒泡排序 for j in range(len(data)-1-i): if data[j][-1] < data[j+1][-1]: # 二维数组交换位置 data[j], data[j+1] = data[j+1], data[j] print(data) count = 1 f2 = open('排序.txt', 'w', encoding='utf-8') for name, km in data: # 循环二维数组 msg = ('%s. %s %s\n' % (count, name, km)) f2.write(msg) count += 1 f.close() f2.close()
2. 交换变量
# 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)
3. 三元表达式
a = 1 sex = '男' if a == 1 else '女' # 三元表达式 print(sex)
4. 列表生成式
l = [1, 5, 7, 6, 32, 567, 45, 897] l2 = [i for i in l] # 把每次循环的结果保存到list里 l3 = [str(i) for i in l] l4 = [str(i)+'km' for i in l] l5 = [str(i)+'km' for i in l if i >= 30] print(l2) print(l3) print(l4) print(l5)

浙公网安备 33010602011771号