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[:]=[]
- def func(L):
- L.append(1)
- print L
- #L[:]=[]
- #del L[:]
- L = []
- print L
- L=[]
- func(L)
- print L
輸出結果:
[1]
[]
[1]
分析:L是可變資料型別,L作為引數,函式內對L的改變,是可以反映到函式外的L中的,執行L.append(1),是在操作,函式外L所佔據的那塊記憶體,然後執行L =[],(函式內的L),想當於L指向了另外一個空間。所以,func(L),print L,輸出[1]。
其實函式的本意是將引數L指向的記憶體清空,用L=[],並不能清空L指向的記憶體
- def func(L):
- L.append(1)
- print L
- L[:]=[]
- #del L[:]
- #L = []
- print L
- L=[]
- func(L)
- print L
輸出結果:
[1]
[]
[]
L[:]=[]:把L對應的記憶體清空
- def func(L):
- L.append(1)
- print L
- #L[:]=[]
- del L[:]
- #L = []
- print L
- L=[]
- func(L)
- print L
分析:
del L[:] 的效果跟L[:]=[]的效果是一樣的。
Python 賦值,往往是通過指標完成的,a=b,只是讓a指向了b,並未把b的內容拷貝到a
- def func(L):
- L.append(1)
- print L
- print id(L)
- #L[:]=[]
- #del L[:]
- L = []
- print id(L)
- print L
- L=[]
- func(L)
- 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