Python 列表與字典 排序 的奇妙之旅

XianZhe_發表於2020-12-15

Python 列表與字典 排序 的奇妙之旅

使用函式或方法說明

<<未編寫完>>

列表的排序方法

相比列表排序,字典排序會麻煩一點,
且不是真正的把字典內容修改,只是利用排序後的內容

方法一

def list_one(n):
    """
    利用列表自帶方法 .sort()
    :param n: 列表中有數值數
    :return: 列表排序後結果
    """
    # 生成隨機數值 方法一
    # list_dic = [random.randint(1, 100) for i in range(n)]
    # 生成隨機數值 方法二
    list_dic = random.sample(range(1, 101), n)

    # 注意: 列表sort只是一個方法,返回的值為None,但列表內容已經被排序修改
    list_dic.sort(reverse=True)
    return list_dic

方法二

def list_two(n):
    """
    利用公共方法 sorted()
    :param n: 列表中有數值數
    :return: 列表排序後結果
    """
    # 生成隨機數值 方法一
    # list_dic = [random.randint(1, 100) for i in range(n)]
    # 生成隨機數值 方法二
    list_dic = random.sample(range(1, 101), n)

    list_dic = sorted(list_dic, reverse=True)
    return list_dic

字典的排序方法

方法一

def dict_one():
    """
    主要用到了字典中的內建方法 .items()
    :return: 字典排序後結果
    """
    scores = {'語文': 89, '數學': 92, '英語': 93}
    dict_sort = sorted(scores.items(), key=lambda x: x[1], reverse=True)
    return dict_sort

方法二

def dict_two():
    """
    思路是將字典中的key和value提取出來並且換個位置,
    利用zip內建函式打包在一塊
    :return: 字典排序後結果
    """
    scores = {'語文': 89, '數學': 92, '英語': 93}
    dict_sort = list(zip(scores.values(), scores.keys()))
    # 注意: 列表sort只是一個方法,返回的值為None,但列表內容已經被排序修改
    dict_sort.sort(key=lambda x: x[0], reverse=True)
    return dict_sort

示例全覽

相關文章