python高级算法:列表冒泡/字典排序/字典统计相加

列表冒泡一:

'''
这里  if list_x[k] < list_x[k+1]:
    < 和  > 控制着输出的顺序  > 表示正序  < 表示倒序

    隐藏部分是查看的执行的流程

'''

list_x = [12, 34, 21, 22, 1, 4, 5, 3]

for i in range(len(list_x)-1):
    # print('++++++++++++')
    # print(i)
    for k in range(len(list_x)-1-i):
        # print('--------------')
        if list_x[k] > list_x[k+1]:
            list_x[k], list_x[k+1] = list_x[k+1], list_x[k]
        # print(list_x)
print(list_x)

结果如下:

[1, 3, 4, 5, 12, 21, 22, 34]

 

列表冒泡二:

list_y = [12, 34, 21, 22, 1, 4, 5, 3]
# reverse=True 表示倒序 reverse=False 表示正序
list_y.sort(reverse=True)
print(list_y)

结果如下:

[34, 22, 21, 12, 5, 4, 3, 1]

 

字典排序

a = {'a': 25, 'b': 120, 'c': 70, 'd': 20, 'e': 11}
data = sorted(a.items(), key=lambda x: x[1], reverse=True)  # 倒序排序
print(data)
# data = [('b', 120), ('c', 70), ('a', 25), ('d', 20), ('e', 11)]

data_dict = {i[0]: i[1] for i in data}  # 生成新的字典
print(data_dict)

结果如下:

{'b': 120, 'c': 70, 'a': 25, 'd': 20, 'e': 11}

 

字典统计相加:

可以用与词频统计等...

from collections import Counter
a = {'a': 1000, 'b': 100, 'c': 10}
b = {'a': 999, 'b': 99, 'd': 1}
c = {'b': 1, 'c': 9, 'd': 1}

x, y, z = Counter(a), Counter(b), Counter(c)
zz = dict(x+y+z)
print(zz)

结果如下:

{'a': 1999, 'b': 200, 'c': 19, 'd': 2}

 

 

 

你可能感兴趣的:(python3,python爬虫入门到精通,python高级算法)