1. 程式人生 > >Python數據類型之列表及其操作

Python數據類型之列表及其操作

對象位置 並且 多個 刪除 的區別 3.3 通用 進行 ins

  列表由以系列按特定順序排列的元素組成,列表不同於元組和字符串的地方:列表是可變的。

  列表是有序集合,列表是序列的一種

  列表的基本操作

  1.修改列表:給元素賦值

colour = [‘red‘,‘white‘,‘blue‘]
colour[0]=‘yellow‘
colour[1]=‘yellow‘
print(colour)
>>> [‘yellow‘, ‘yellow‘, ‘blue‘]

  # 最簡單通過下標(索引)修改。

  2.給切片賦值

colour = [red,white,blue]
colour[2:] = [
yellow,black] print(colour) >>>[red, white, yellow, black]

  #覆蓋掉了第三個元素,並且改變了列表的長度

  可以通過切片在不替換原有元素的情況下插入新元素

colour = [red,white,blue]
colour[2:2] = [yellow,black]
print(colour)
>>>[red, white, yellow, black, blue]

  還可以通過切片刪除特定元素

colour = [
red,white,blue,yellow,black] colour[1:3] = [] print(colour) >>>[red, yellow, black]

  #沒有刪除第四個元素 (回顧序列通用操作,切片)

  3.刪除元素

  3.1 del方法(需要指定刪除元素的位置

colour = [red,white,blue,yellow,black]
del colour[3]
print(colour)
>>>[red, white, blue, black
]

  刪除切片元素

colour = [red,white,blue,yellow,black]
del colour[1:3]
print(colour)
>>>[red, yellow, black]

  #與切片賦值空列表效果一致

  3.2 pop方法會移除列表中的一個元素(默認是最後一個),並返回該元素的值。

n = [to,be,do,in,be,not,bee]
print(n.pop())
>>> bee

  也可指定元素位置

n = [to,be,do,in,be,not,bee]
print(n.pop(3))
>>> in

  pop方法是唯一一個既能修改列表又返回元素值(除了None)的列表方法。pop後也可以跟對象位置,刪除指定位置的元素。等於(del listname [x])。

  3.3 remove方法用於移除列表中某個值的第一個匹配項。

n = [to,be,do,in,be,not,bee]
n.remove(be)
print(n)
>>>[to, do, in, be, not, bee]

  4.增加,插入元素

  4.1 append方法用於在列表末尾追加新的對象

colour = [white,red,black,blue,green]
colour.append(yellow)
print(colour)
>>>[white, red, black, blue, green, yellow]

  #它不是簡單地返回一個修改過的新列表,而是直接修改原來的列表。

   4.2 extend方法可以在列表的末尾一次性追加另一個序列中的多個值。

a = [1,2,3]
b = [4,5,6]
a.extend(b)
print(a)
print(b)
>>>[1, 2, 3, 4, 5, 6]
>>>[4, 5, 6]

  看起來很像連接(相加)操作,兩者最主要的區別在於:extend方法修改了被擴展的序列(即a),而原始的連接操作則不然,它會返回一個全新的列表。

a = [1,2,3]
b = [4,5,6]
x=a+b
print(x)
print(a)
print(b)

>>>[1, 2, 3, 4, 5, 6]
>>>[1, 2, 3]
>>>[4, 5, 6]
#或者a = a +b

  4.3 insert方法用於將對象插入到列表中(必須指定元素位置)

num = [1,2,3,5,6,7]
num.insert(3,four)
print(num)
>>>[1, 2, 3, four, 5, 6, 7]

  5.clear方法用就地清空列表的內容

num = [1,2,3,5,6,7]
num.clear()
print(num)
>>> []

  #類似於切片賦值list[:]=[]

  6.copy 方法用於復制列表

  常規復制只是將另一個名關聯到列表

a = [1,2,3]
b = a
b[1] = 4
print(a)
>>> [1, 4, 3]

  要讓a和b指向不同的列表,就必須將b關聯到a的副本。

a = [1,2,3]
b = a.copy()
b[1] = 4
print(a)
print(b)
>>>[1, 2, 3]
>>>[1, 4, 3]

  7.count 方法用於計算指定的元素在列表中出現了多少次

n = [to,be,do,in,be,not,bee]
print(n.count(be))
>>> 2

  8.index方法用於在列表中查找指定值第一次出現的索引。

n = [to,be,do,in,be,not,bee]
print(n.index(be))
>>> 1

  9.reverse方法將列表中的元素反向存放

colour = [white,red,black,blue,green]
colour.reverse()
print(colour)
>>>[green, blue, black, red, white]

  sort方法用於在原位置對列表進行排序(排序規則?),在‘原位置排序’意味著改變原來的列表,從而讓其中的元素能按一定的順序排列,而不是簡單地返回一個已排序的列表副本。  

x = [3,6,1,8,2,5,7,4]
x.sort()
print(x)
>>>[1, 2, 3, 4, 5, 6, 7, 8]

x = [3,6,1,8,2,5,7,4]
print(x.sort())
>>> None


#sort修改x且不返回任何值,最終的結果是x是經過排序的,而y包含None x
= [3,6,1,8,2,5,7,4] y=x.sort() print(x) print(y) >>>[1, 2, 3, 4, 5, 6, 7, 8] >>>None

  當需要一個排好序的列表副本,同時又保留原有列表不變的時候,需先把x的副本賦值給y,然後對y進行排序.

x = [3,6,1,8,2,5,7,4]
y=x[:] #得到包含了x所有元素的分片  或 y = x.copy()
y.sort()
print(x)
print(y)
>>>[3, 6, 1, 8, 2, 5, 7, 4]
>>>[1, 2, 3, 4, 5, 6, 7, 8]

Python數據類型之列表及其操作