Python序列 列表的切片操作 遍歷 排序

2021-09-23 22:41:54 字數 1633 閱讀 3581

切片操作時,其實偏移量和終止偏移量不在[0,字串長度-1]這個範圍,也不會保持。起始偏移量小於0則會當做0,終止偏移量大於「長度-1」,會被當成長度-1

>>> a=[10,20,30,40,50,60]

>>> a[:]

[10, 20, 30, 40, 50, 60]

>>> a[1:3:1]

[20, 30]

>>> a[1::2]

[20, 40, 60]

>>> a[1:]

[20, 30, 40, 50, 60]

>>> a[:2]

[10, 20]

>>> a[-3:]

[40, 50, 60]

>>> a[-5:-3] # -5到-3,包頭不包尾

[20, 30]

>>> a[::-1]

[60, 50, 40, 30, 20, 10]

>>>

>>> a[1:100]

[20, 30, 40, 50, 60]

>>>

for obj listobj:

print(obj)

>>> for x in a:

print(x)

1020

3040

5060

>>>

我們可以通過內建函式sorted()進行排序,這個方法返回新列表,不對原列表做修改

reversed()返回迭代器

內建函式reversed()也支援進行逆序排列,與列表物件reverse()方法不同的是,內建函式reversed()不對原列表做任何修改,只是返回乙個逆序排列的迭代器物件

>>> a = [20,10,30,40]

>>> id(a)

2136620739144

>>> a.sort()         #預設公升序排列

>>> a

[10, 20, 30, 40]

>>> a.sort(reverse=true)  #降序排列

>>> a

[40, 30, 20, 10]

>>> import random

>>> random.shuffle(a)       #匯入random模組,隨機排列

>>> a

[30, 20, 40, 10]

>>>

>>> id(a)

2136620739144

>>>

>>> a = sorted(a)

>>> a

[10, 20, 30, 40]

>>> id(a)

2136623940104

>>>

>>> a[::-1]

[40, 30, 20, 10]

>>> c = reversed(a)  #迭代器是指標

>>> c

>>> list(c)

[40, 30, 20, 10]

>>> list(c)       #迭代器使用list只能用一次

>>>

我們列印出c發現提公升是:list_reverseinterator。也就是乙個迭代物件。同時,我們使用list(c)進行輸出,發現只能使用一次。第一次輸出了元素,第二次為空。那是因為迭代物件在第一次時已經遍歷結束了,第二次不能再使用

Python序列 列表

列表是能保留任意數目的python物件的靈活的容器。extend 方法可代替連線操作符把乙個列表的內容新增到另乙個中去。注 使用extend 方法比連線操作的乙個優點是它實際上是把新列表新增到了原有列表裡面,而不是像連線操作符那樣新建乙個列表。sorted函式可以將任何序列返回為乙個新的有序列表 s...

python 序列 列表(1)

python資料的集合總稱序列,分為有序序列和無序序列兩類 有序序列包括 列表,元組,字串 無序序列包括 字典,集合,控制集合資料的物件 2.1 列表概念及初始化 列表 python中是有序的 可變資料集合,使用一對標識 初始化語法 列表初始化語法 建立乙個空列表 lia 建立乙個列表 lib 8,...

Python序列的切片操作

1 切片是python序列的重要操作之一,適用於列表元組 字串 range物件等型別 2 切片使用2個冒號分割3個數字來完成 第乙個數字表示切片的開始位置 預設為0 第二個數字表示切片截止 但不包含 位置 預設為列表長度 第三個數字表示切片的步長 預設為1 當步長省略時可以順便省略最後乙個冒號。3 ...