1. 程式人生 > >Python遍歷列表的方法enumerate,以及清空list方法

Python遍歷列表的方法enumerate,以及清空list方法

遍歷list方法:

方法一:

tmplist = [1234, 5677, 8899]
for id in tmplist:
    print tmplist
輸出: 
1234 
5677 
8899

方法二:用函式enumerate:

enumerate()是python的內建函式
enumerate在字典上是列舉、列舉的意思
對於一個可迭代的(iterable)/可遍歷的物件(如列表、字串),enumerate將其組成一個索引序列,利用它可以同時獲得索引和值
enumerate多用於在for迴圈中得到計數

tmplist = [1234, 5677, 8899]
for index,app_id in enumerate(tmplist):
    print index, app_id
輸出: 
0 1234 
1 5677 
2 8899

下標從1開始:

tmplist = [1234, 5677, 8899]
for index,app_id in enumerate(tmplist, 1):
    print index, app_id
輸出: 
1 1234 
2 5677 
3 8899

方式三: 使用range()或xrange()
 tmplist = [1234, 5677, 8899]
    for i in range(len(tmplist)):
          print i,tmplist[i]
輸出: 
0 1234 
1 5677 
2 8899

=========================

清空list的方法:

del list[:]

list=[]

list[:]=[]

  1. def func(L):                                                                      
  2.     L.append(1)  
  3.     print L  
  4.     #L[:]=[]
  5.     #del L[:]
  6.     L = []  
  7.     print L  
  8. L=[]  
  9. func(L)  
  10. print L  

輸出結果:

[1]
[]
[1]

分析:L是可變資料型別,L作為引數,函式內對L的改變,是可以反映到函式外的L中的,執行L.append(1),是在操作,函式外L所佔據的那塊記憶體,然後執行L =[],(函式內的L),想當於L指向了另外一個空間。所以,func(L),print L,輸出[1]。

其實函式的本意是將引數L指向的記憶體清空,用L=[],並不能清空L指向的記憶體

  1. def func(L):  
  2.     L.append(1)                                                                   
  3.     print L  
  4.     L[:]=[]  
  5.     #del L[:]
  6.     #L = []
  7.     print L  
  8. L=[]  
  9. func(L)  
  10. print L  

輸出結果:

[1]
[]
[]

L[:]=[]:把L對應的記憶體清空

  1. def func(L):                                                                      
  2.     L.append(1)  
  3.     print L  
  4.     #L[:]=[]
  5.     del L[:]  
  6.     #L = []
  7.     print L  
  8. L=[]  
  9. func(L)  
  10. print L  

分析:

del L[:] 的效果跟L[:]=[]的效果是一樣的。

Python 賦值,往往是通過指標完成的,a=b,只是讓a指向了b,並未把b的內容拷貝到a

  1. def func(L):                                                                      
  2.     L.append(1)  
  3.     print L  
  4.     print id(L)  
  5.     #L[:]=[]
  6.     #del L[:]
  7.     L = []  
  8.     print id(L)  
  9.     print L  
  10. L=[]  
  11. func(L)  
  12. print L  
輸出結果:

31460240
31460168

很明顯:通過賦值L=[]後,L指向的記憶體完全不一致了。


相關推薦

Python列表方法enumerate以及list方法

遍歷list方法: 方法一: tmplist = [1234, 5677, 8899] for id in tmplist:     print tmplist 輸出:  1234  5677  8899 方法二:用函式enumerate: enumerate()是py

[python] 列表四種方法

# -*- coding: utf-8 -*- """ Created on Thu Jul 19 19:51:08 2018 @author: yhl """ a=[10,23,45,87] print '1:' for val in a: print va

Python列表時刪除元素

bsp lam 簡潔 log ref body 同時 http 兩個 無論是使用for還是while,當在從前往後遍歷的同時刪除列表中的元素時,都會發生些問題。 要從lst = [1,4,0,1,5,0,3,5]中刪除所有0元素,有兩個比較好的方法: 1 使用filter:

python 列表的四種方式

for enume list 列表 print clas int class range 1, list = [1,2,3,4] for i in list: … print i … 1 2

Python--列表時刪除元素的正確做法

一.問題描述  這是在工作中遇到的一段程式碼,原理大概和下面類似(判斷某一個元素是否符合要求,不符合刪除該元素,最後得到符合要求的列表): a = [1,2,3,4,5,6,7,8] for i in a: if i>5: pass else:

Python ——列表(列印九九乘法表)

Python操作列表的基本方式之一:遍歷列表,一般通過迴圈完成遍歷操作 迴圈這種概念很重要,因為它是讓計算機自動完成重複工作的常見方式之一  本次通過練習列印九九乘法表來熟悉for迴圈。 一、Python的for迴圈 # for list in lists for迴

( 轉)Ubuntu下創建、重命名、刪除文件及文件夾強制回收站方法

移動文件 trash -c creat 更強 file mmd 文件 spa Ubuntu下創建、重命名、刪除文件及文件夾,強制清空回收站方法 mkdir 目錄名 ——創建一個目錄 rmdir 空目錄名

刪除和新增select下拉框選中的內容option以及option選項

刪除:$("#sysusergroupList").find("option:selected").remove();新增:document.getElementById("sysusergroupLi

Python 資料夾中的檔案並將檔案放到列表

最經剛開始接觸Python,學習了用Python實現遍歷資料夾裡的檔案(只遍歷檔案不要目錄),並將這些檔案放到一個列表中 廢話不多說,直接上程式碼 def allDir(path): f=[] for root,dirs,files in o

Python不用while和for迴圈列表

a = [1, 2, 3, 8, 9] def printlist(l, index): if index == len(l): return else: print(l[index]) printlist(l,

在彈框中獲取foreach中的id值並傳遞給地址欄(方法2)

ges 應該 我們 png 地址欄 each 獲取 賦值 有時 1.php有時候我們需要再彈框中獲取foreach中遍歷的數據(例如id),在彈框中點擊按鈕並傳遞給地址欄跳轉。那麽應該怎麽做呢。第二種方法。 2. 可以在彈框中給出一個input hidden 點擊按鈕彈窗時

列表元組字典集合

src alt 分享 集合 -1 logs .com 列表 ima 遍歷列表,元組,字典,集合

Python目錄以及子目錄的文件

python3 bbb 需要 bsp [] return urn path nbsp 1 #!/usr/bin/env python3 2 import os 3 def bbb(dir_str): 4 filepaths=[] 5 abspat

三種列表裏面序號和值的方法

開始 clas pri border padding span style %s pytho list = [‘html‘, ‘js‘, ‘css‘, ‘python‘] # 方法1 # 遍歷列表方法1:‘ for i in list: print("序號:%s

Python陣列的方法

Python中遍歷陣列的方法, 第一種 通過for迴圈來遍歷陣列 class Test(): a = ["Albert","Mike",123,'c'] for i in a: print (i) 第二種方法 我們先

三種列表裡面序號和值的方法

list = ['html', 'js', 'css', 'python'] # 方法1 # 遍歷列表方法1:' for i in list: print("序號:%s 值:%s" % (list.index(i) + 1, i)) # 遍歷列表方法2:' # 方法2 for i in ra

python 刪除複製資料夾下所有檔案

import os def files_and_dirs_list(dir_path): """ 遍歷資料夾及資料夾下所有檔案(包括資料夾) :param dir_path: 資料夾路徑 :return: root 所指的是當前正在遍歷的這個資料

Python資料結構——二叉樹的(先根中根後根)

先序遍歷:根左右 中序遍歷:左根右 後序遍歷:左右根 # -*- coding:utf-8 -*- # file: TreeTraversal.py # class BTree: # 二叉樹節點 def __init__(self, value):

python 多層列表

a = [[1,3,4],[4,5,65,[9,6,8]],96,8] def lis(z): for i in z: if isinstance(i,list): lis(i) else: print(i)

python:從後往前列表

C語言中從後往前遍歷陣列是很方便的,如: for(int i = 5; i >= 0; i--){ printf("%d\n", i); } 但是在python中預設是從前往後遍歷列表的,有時候需要從後往前遍歷。根據 range 函式的用法: range(start, en