1、交换两个变量的值、三元表达式、列表生成式

# 第一种:
a = 1
b = 2
a, b = b, a
print(a, b)
# 第二种:
c = None
c = a
a = b
b = c
print(a, b)

# 三元表达式
a = 1
sex = '' if a == 1 else ''
# 等同于
if a == 1:
    sex = ''
else:
    sex = ''

# 列表生成式或者推导式
l = [1, 5, 7, 32, 352, 623, 5626, 2632, 626]
l2 = [str(i) + 'km' for i in l]
print(l2)
l3 = [str(i) + 'km' for i in l if i >= 30]
print(l3)
# 循环15次
# for i in range(3):
#     for j in range(5):
#         print(j)

运行结果:

2 1
1 2
['1km', '5km', '7km', '32km', '352km', '623km', '5626km', '2632km', '626km']
['32km', '352km', '623km', '5626km', '2632km', '626km']

2、冒泡排序

(1)概念:

  • 冒泡排序(Bubble Sort),是一种计算机领域的较简单的排序算法。
  • 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
  • 走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
  • 这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。
(2)算法原理:
  • 冒泡排序算法的运作如下:(从后往前)
  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个
  • 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  • 针对所有的元素重复以上的步骤,除了最后一个。
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置

缺点: 冒泡排序解决了桶排序浪费空间的问题, 但是冒泡排序的效率特别低
撸代码瞅瞅
# 相邻的数字交换
l = [2, 5, 12, 352, 1, 23, 35, 63, 5, 2]
# count=0
for i in range(len(l) - 1):  # 这个是控制总共需多少趟
    for j in range(len(l) - 1 - i):  # 10-1=j  i是循环后的数字(优化),这个循环是控制交换的
        if l[j] > l[j + 1]:
            l[j], l[j + 1] = l[j + 1], l[j]
        # count+=1
print(l)
# print(count)

运行结果:

[1, 2, 2, 5, 5, 12, 23, 35, 63, 352]

再撸段代码

d = {'行者无疆': 246, '王三侠': 210, '大亮': 128, '毛多锁': 418, '追~落日': 3.21, '小文': 416, '瑞峰': 22.13,
     '尤文奎Alex': 138, '阿梁': 167, '山峰': 0, 'David': 350, '胖胖球🐌': 68.16, '幸福哥': 100, '梁明': 350,
     '郝明明': 64, '赵宗来': 136.32, '平民之女': 9.66, '王俊兵': 65, '祁棒棒': 79.24, '陈陈': 20, '兔兔': 49,
     '小了白了兔': 55, '高娃': 100.7, '漠然': 139, '心语': 216, '王成': 183, '陈卫亮': 141.75}

data = list(d.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]
count = 1
for name, km in data:
    print('%s. %s %s' % (count, name, km))
    count += 1

运行结果:

1. 毛多锁 418
2. 小文 416
3. David 350
4. 梁明 350
5. 行者无疆 246
6. 心语 216
7. 王三侠 210
8. 王成 183
9. 阿梁 167
10. 陈卫亮 141.75
11. 漠然 139
12. 尤文奎Alex 138
13. 赵宗来 136.32
14. 大亮 128
15. 高娃 100.7
16. 幸福哥 100
17. 祁棒棒 79.24
18. 胖胖球🐌 68.16
19. 王俊兵 65
20. 郝明明 64
21. 小了白了兔 55
22. 兔兔 49
23. 瑞峰 22.13
24. 陈陈 20
25. 平民之女 9.66
26. 追~落日 3.21
27. 山峰 0

 

posted on 2020-05-04 23:26  彩彩常  阅读(224)  评论(0编辑  收藏  举报