>>
> a =[20
,10,30
,40]>>
>
id(a)
46017416
>>
> a.sort(
)#預設是公升序排列 a是 list list物件 list.sort()
>>
> a [10
,20,30
,40]>>
> a =[10
,20,30
,40]>>
> a.sort(reverse=
true
)#降序排列
>>
> a[40
,30,20
,10]>>
>
import random
>>
> random.shuffle(a)
#打亂順序 洗牌 將原來的物件順序打亂
>>
> a[20
,40,30
,10]
我們也可以通過內建函式sorted()
進行排序,這個方法返回新列表,不對原列表做修改。
sorted
不僅可以對list
列表物件排序。 其他的 一些 可迭代物件 也是可以排序的。
>>
> a =[20
,10,30
,40]>>
>
id(a)
46016008
>>
> a =
sorted
(a)#預設公升序
>>
> a[10
,20,30
,40]>>
>
id(a)
45907848
# id 改變了 所以不是同乙個 物件了。
>>
> a =[20
,10,30
,40]>>
>
id(a)
45840584
>>
> b =
sorted
(a)>>
> b[10
,20,30
,40]>>
>
id(a)
45840584
>>
>
id(b)
46016072
# id 改變了
>>
> c =
sorted
(a,reverse=
true
)#降序
>>
> c [40
,30,20
,10]
通過上面操作,我們可以看出,生成的列表物件b
和c
都是完全新的列表物件
。
內建函式reversed()
也支援進行逆序排列
,與列表物件reverse()
方法不同的是,內建函式
reversed()
不對原列表做任何修改,只是返回乙個逆序排列的迭代器物件。
>>
> a =[20
,10,30
,40]>>
> c =
reversed
(a)>>
> c
>
# 迭代物件
>>
>
list
(c)# 當然 也可以 用 我前面講的 [*c] 來解包[40
,30,10
,20]>>
>
list
(c)# 再次 輸出 則為空了。 這就是 迭代器。 只能使用 一次 。 所以非常節省 記憶體。
我們列印輸出c發現提示是:list_reverseiterator
。也就是乙個迭代物件
。
同時,我們使用list(c)
進行輸出,發現只能使用一次。第一次輸出了元素,第二次為空
。
那是因為迭代物件 在第一次時已經遍歷結束了 ,第二次不能再使用。
注:關於迭代物件的使用,後續章節會進行詳細講解。
用於返回列表中最大和最小值。
[40,
30,20,
10]>>
> a =[3
,10,20
,15,9
]>>
>
max(a)
# 返回最大值
20>>
>
min(a)
# 返回最小值
3
前面講 列表合併的 時候 簡單 介紹 過
對數值型列表的所有元素進行求和操作,對非數值型
列表運算則會報錯
。
>>
> a =[3
,10,20
,15,9
]>>
>
sum(a)
57>>
>
sum(
range
(100))
# 求 0 到 100 的 和 。 小學奧數題。
5050
for obj in listobj:
# for 迴圈
print
(obj)
如下**實現列表元素的複製了嗎?
list1 =[30
,40,50
] list2 = list1
只是將 list2 也指向了列表物件,也就是說 list2 和 list2 持有我們可以通過如下簡單方式,實現列表元素內容的複製:位址值
是相同的,列表物件本 身的元素並
沒有複製
。
list1 =[30
,40,50
] list2 =
+ list1 # 和我之前講的 sum 函式 以及 + 號 合併 列表 是一樣的。
注:我們後面也會學習copy
模組,使用淺複製
或深複製
實現我們的複製操作。 7列表排序
要求 將列表裡的內容,自定義排序輸出 實現方式 用到的函式 1.將資料內容寫到乙個空的列表裡 2.將排序前的列表輸出出來 3.運用sorth函式或者lamdba表示式排序 4.將排序後的列表輸出出來 如下 list print 排序前 for i in list print i def px ele...
python3 列表排序 python3 排序
排序 z 11,34,12,9,8534,12,434 z.sort z 12,9,11,12,34,434,8534 sort 函式用於對原列表進行排序,如果指定引數,則使用比較函式指定的比較函式。語法sort 方法語法 list.sort cmp none,key none,reverse fa...
程式5 列表排序sort
程式5 列表排序sort 題目 輸入三個整數x,y,z,請把這三個數由小到大輸出。1.程式分析 我們想辦法把最小的數放到x上,先將x與y進行比較,如果x y則將x與y的值進行交換,然後再用x與z進行比較,如果x z則將x與z的值進行交換,這樣能使x最小。知識點排序 原型sort key none,r...