1. 程式人生 > >python列表總結

python列表總結

  • 列表方法append():在列表末尾新增元素
  • 列表方法insert():在列表任意位置插入元素,a.insert(0,1),在列表的0號位置插入元素1.
  • 列表方法count(s):返回s在列表中出現的次數
  • 列表方法remove(s):移除列表中的第一個s,從左往右數
  • 列表方法reverse():反轉整個列表
  • 列表方法extend():將一個列表的元素全部新增到另一個列表的末尾,a.extend(b),將列表b中所有元素新增到a的末尾
  • 列表方法sort():對列表按増序進行排序,前提是列表元素是可排序的。如:`c=[1,’a’,b’],則c不能進行排序。
  • 列表方法pop(i):彈出列表的第i個元素,如果沒有引數,則預設彈出列表的最後一個元素。
  • python關鍵字del:也能對列表進行操作,如del a[0]表示刪除列表的0號元素,del a[-1]表示刪除列表的倒數第一個元素。

將列表用做棧和列表

  • 棧:一種LIFO(Last In First Out)資料結構,即後進先出。
  • 佇列:一種FIFO(First In First Out)資料結構,即先進先出。
實現方法:
1、實現棧
新增元素時,用append()方法,將元素新增到列表的末尾。
刪除元素是,用pop()方法,將列表末尾的元素彈出。
2
、實現佇列 新增元素時,用append()方法,將元素新增到列表的末尾。 刪除元素時,用pop(0)方法,將列表首的元素刪除。
列表推導式

列表推導式由包含一個表示式的中括號組成,表示式後面跟隨一個for字句,之後可以有多個for或者if字句。列表推導式的結果是一個列表。如

>>>[(x,y) for x in [1,2,3] for y in [3,1,4] is x!=y]
[(1,3),(1,4),(2,3),(2,1),(2,4),(3,1),(3,4)]

等同於:

>>>combs=[]
>>>for x in [1
,2,3] ... for y in [3,1,4] ... if x!=y: ... combs.append((x,y)) ...

列表推導式也可以巢狀:

>>> a=[1,2,3]
>>>z=[x+1 for x in [x**2 for x in a]]
>>>z
[2,5,10]

如果沒有列表推導式,一般都是這樣建立列表:

通過將一些操作應用於序列的每個成員並通過返回的元素建立列表,或者通過滿足特定條件的元素建立子序列。

假設要建立一個squares列表,方法1:

>>>squares=[]
>>>for x in range(10):
...    squares.append(x**2)
...
>>>squares
[0,1,4,9,16,25,36,49,64,81]

但是這個方法有個副作用,就是x變數在迴圈完畢後依然存在。

>>>x
>>>9

方法2

squares=list(map(lambda x:x**2,range(10)))

方法3

squares=[x**2 for x in range(10)]

方法2和方法3都沒有副作用