回覆列表
  • 1 # 使用者6742683390286

    首先還是說下sort的特性,它對原列表進行排序,但是返回的是空列表。如果直接將值賦予另一個變數,排序後,原列表也會跟著改變。

    >>> num = [1,3,2,4,5,2,33,8]

    >>> n = num

    >>> n.sort()

    >>> print(n,num)

    [1, 2, 2, 3, 4, 5, 8, 33] [1, 2, 2, 3, 4, 5, 8, 33]

    要想保留原列表不變,可以用切片處理。

    >>> num = [1,3,2,4,5,2,33,8]

    >>> n = num[:]

    >>> n.sort()

    >>> print(n,num)

    [1, 2, 2, 3, 4, 5, 8, 33] [1, 3, 2, 4, 5, 2, 33, 8]

    除了切片,也可以使用淺copy:

    >>> num = [1,3,2,4,5,2,33,8]

    >>> n = num

    >>> num = [1,3,2,4,5,2,33,8]

    >>> n =num.copy()

    >>> n.sort()

    >>> print(n,num)

    [1, 2, 2, 3, 4, 5, 8, 33] [1, 3, 2, 4, 5, 2, 33, 8]

    但是今天要說的是另外一個事,sort裡面還有個引數

    num = [[1,2],[4,2],[5,3],[2,1]]#列表中鑲嵌列表

    >>> n = num[:]

    >>> n.sort(key = lambda x : x[0])#sort要設定一個排序的關鍵引數

    >>> print(n)

    [[1, 2], [2, 1], [4, 2], [5, 3]]#用列表中的第一位數作為排序基礎

    取列表中的第二位數作為排序基礎,可以看到,當第二位數相等時,會自動按第一位數的大小排。

    >>> num = [[1,2],[4,2],[5,3],[2,1]]

    >>> n = num.copy()

    >>> n.sort(key = lambda x : x[1])

    >>> print(n,num)

    [[2, 1], [1, 2], [4, 2], [5, 3]] [[1, 2], [4, 2], [5, 3], [2, 1]]

  • 中秋節和大豐收的關聯?
  • DNF福利小活動,開服登陸即送升級券,助力大家秒升96級肝深淵,如何?