python清空列表
㈠ python中del 語句的用法
python的del不同於C的free和C++的delete。
由於python都是引用,而python有GC機制,所以,del語句作用在變數上,而不是數據對象上。
㈡ 如何把列表外的列表移除python
python的列表list可以用for循環進行遍歷,實際開發中發現一個問題,就是遍歷的時候刪除會出錯,例如
l = [1,2,3,4]
for i in l:
if i != 4:
l.remove(i)
print l
這幾句話本來意圖是想清空列表l,只留元素4,但是實際跑起來並不是那個結果。再看下面,利用index來遍歷刪除列表l
l = [1, 2, 3, 4]
for i in range(len(l)):
if l[i] == 4:
del l[i]
print l
這樣沒問題,可以遍歷刪除,但是列表l如果變為 l = [1,2,3,4,5]
如果還是按照上面的方法,設想一下,range開始的范圍是0-4,中間遍歷的時候刪除了一個元素4,這個時候列表變成了= [1,2,3,5],這時候就會報錯了,提示下標超出了數組的表示,原因就是上面說的遍歷的時候刪除了元素
所以python的list在遍歷的時候刪除元素一定要小心
可以使用filter過濾返回新的list
l = [1,2,3,4]
l = filter(lambda x:x !=4,l)
print l
這樣可以安全刪除l中值為4的元素了,filter要求兩個參數,第一個是規則函數,第二個參數要求輸入序列,而lambda這個函數的作用就是產生一個函數,是一種緊湊小函數的寫法,一般簡單的函數可以這么些
或者可以這樣
l = [1,2,3,4]
l = [ i for i in l if i !=4]//同樣產生一個新序列,復值給l
print l
或者乾脆建立新的list存放要刪除的元素
l = [1,2,3,4]
dellist = []
for i in l:
if i == 4:
dellist.append(i)
for i in dellist:
l.remove(i)
這樣也能安全刪除元素
所以要遍歷的時候刪除元素一定要小心,特別是有些操作並不報錯,但卻沒有達到預期的效果
上面說到產生新序列,賦值等等,用python的id()這個內置函數來看對象的id,可以理解為內存中的地址,所以有個簡要說明
如果
l = [1,2,3,4]
ll = l
l.remove(1)
print l//肯定是[2,3,4]
print ll//這里會是什麼?
如果用id函數查看的話就發現
print id(l),id(ll)
列印出相同的號碼,說明他們其實是一個值,也就是說上面的print ll將和l列印的一樣,所以python有這種性質,用的時候注意一下就行了
㈢ Python如何刪除列表的值:如:a=[1,2,1,3,1,1] 刪除全部1的值,一個都不留
a=[1,2,1,3,1,1]
a=[iforiinaifa!=1]
㈣ python列表的特點
列表的特點
1.list(列表)是python中使用最頻繁的數據類型,在其他的語言中通常叫做數組
2.專門用於存儲一串信息
3.列表用[]定義,列表中的數據用「,」分割
4.列表的索引是從0開始
列表的操作
假設列表名為list
㈤ python基礎之序列類型的方法——列表&元組
首先登場的選手是python的列表,列表屬於可變類型,所以它將有完整的增刪改查方法,讓我們一起來看看具體是什麼。
增,顧名思意就是可以對列表進行新增元素的操作,python的列表提供了三種新增元素的操作,分別是:append() ,insert(), extend()
首先是append(),它可以將一個元素追加到列表的末尾。
舉個栗子:
上述代碼中,我們使用的是li.append('新增內容')的方式來為列表添加元素
li.append()使列表li調用自身的方法append(),這樣就可以在列表的末尾添加一個新的元素。
接下來是insert(),append()是排隊,那insert()就是插隊的意思啦,它可以將一個元素插入到列表的自定位置:
li.insert(索引,元素)
這樣就將字元串helloworld插入到了列表的第四個位置里。
上面兩個方法是對單個元素進行增加,如果我們需要增加多個元素怎麼辦?
那就可以使用我們的extend()來進行添加,extend()可以將序列中的每個元素添加到末尾:
上面的代碼先定義了兩個列表l1和l2,然後使用l1.extend(l2),將l2的每個元素添加到了l1的末尾。
增加講完了,接下來進行刪除操作,刪除也有對應的四個方法:del(),pop(),remove(),clear()
del()是單獨的方法,不需要通過列表本身來進行調用,可以直接使用:
上述代碼刪除了li[0],但是請注意,如果不進行索引的話,默認會將這個變數刪除,請謹慎使用:
這就是刪除了整個變數,再列印這個變數時就會提示變數未定義
pop()方法不帶參數的話刪除默認刪除最後一個元素,帶參數的話則刪除指定的下標值:
pop()還有個神奇的地方,它可以讓你需要刪除的參數取出來繼續使用,使用完了再進行刪除:
上述代碼使用pop()刪除了第一個元素,然後使用第一個元素進行了一個簡單的判斷,說明pop()可以為我們返回刪除的元素,讓我們先使用,使用完再刪除
remove()用來刪除一個指定元素,無返回值,無法使用下標刪除:
上述代碼使用remove()刪除了一個元素l
clear()用於清空列表,與del不同的是,它會為我們保留空列表,而不會把變數都刪除:
上述代碼清除了列表後,保留了空列表
改的方法就比較簡單,直接索引出下標重新賦值即可:
這里就對li[0]進行了重新賦值
有通過index查詢指定元素返回對應下標,也可以使用count來計算該元素出現過的次數:
除了增刪改查,列表中還有其他的方法復制()、倒敘排列reverse()、從小到大排列sort()
使用li.(),再用一個變數接收復制的列表,就可以實現復制出一個新的列表來
sort()方法可以將數字類型的進行從小到大的排列,一般也用於同類型的排列
元組作為不可變類型,只能查和刪,如果需要其他操作需要轉換成列表
只能刪除整個元組,無法使用下標值,刪除後再使用會提示沒有定義變數
元組只有查和刪的方法,如果需要修改應先轉成列表修改再轉回元組,但是不建議這么做,因為修改過的元組就已經不是原來的那個元組了,而且設置元組也是為了這組數據不希望受到修改
以上就是關於列表&元組的方法了,有興趣的小夥伴可以自己嘗試一下。
如果有哪些錯誤或者不好的地方,還請各位大佬指出來,我會虛心接受並修改錯誤,謝謝!
㈥ python字典轉換為list後選中最後一個值
設為星標,第一時間獲取更多干貨
在python中,數據類型主要由以下幾類組成:
列表(list): [a, b]
元組(tuple):(a, b, )
集合(set): {a, b}
字典(Dictonary): {a: 『aaa』, b: 『bbb』}
1. 列表
列表(List)
列表是Python中使用最頻繁的數據類型,專門用於存儲一串信息
列表是一種有序和可更改的集合。允許重復的元素
列表使用[]定義,元素之間使用,分隔。例:[1,2, ...]
列表的索引從位置0開始
索引就是元素在列表中的位置編號,索引又可以被稱為下標
注意:從列表中取值時,如果超過索引范圍,程序會報錯
雖然列表可以存儲不同類型元素,但是曰常中一般存儲相同類型的元素
如何使用列表
列表[索引]: 從列表中取值,獲取指定索引的元素
列表[開始索引:結束索引:步長]:
返回從開始索引到結束索引-1的列表,如果設置步長,按步長跳過元素
len(列表): 獲取列表的長度
元素 in 列表: 判斷元素是否在列表中
列表.count(元素): 返回指定元素在列表中的個數
列表.index(元素): 返回指定元素在列表中第一次出現的索引,查找失敗時報錯
列表.sort(): 從小到大排序,括弧內增加reverse=True ,則是從大到小排序
列表_reverse(): 逆序(反轉)列表
列表.clear(): 清空列表
Eg:
# 0 init listL = [1, 2, 3, 4, 5, 7, 6]# 1 index valueL[1] # --> 2# 2 stepL[2: 5: 2] # --> [3, 5]# 3 lengthlen(L) # --> 6# 4 in6 in L # ---> True8 in L # ---> False# 5 countL.count(1) # ---> 1# 6 indexL.index(2) # ---> 1# 7 sortL.sort() # ---> [1, 2, 3, 4, 5, 6, 7] 注意:會改變自己 返回None # 8 reverseL.reverse() # 由於第7步改變了自己, 這里變成[7, 6, 5, 4, 3, 2, 1] 會改變自己 返回None # 9. clearL.clear() # ---> []
列表特有的一些使用方法
L = [1, 2, 3, 4, 5]
列表[索引]=元素:修改指定索引的元素,索引不存在會報錯
L[2] = 7 L # ---> [1, 2, 7, 4, 5]
列表 . append(元素):在列表的末尾追加元素
L.append(6)L # ---> [1, 2, 7, 4, 5, 6]
列表 . insert(索引,元素):在指定索引位置插入元素,索引不存在時在末尾追加
L.insert(3, 9)L # ---> [1, 2, 7, 4, 9, 5, 6]
列表.pop(索引):
刪除並返回指定索引的元素,未指定索引時刪除最後一項,索引不存在時報錯
L.pop(3) # 4, L 變成[1, 2, 7, 9, 5, 6]L.pop() # 6, L 變成[1, 2, 7, 9, 5]
列表 . remove(元素):刪除列表中第一個出現的指定元素,查找失敗時報錯
L.remove(2) # L 變成[1, 7, 9, 5]
del 列表[索引]: 刪除指定索引位置的元素,索引不存在時報錯
del L[3] # L 變成[1, 7, 9]
列表l.extend(列表2): 將列表2拼接在列表1後
L.extend([8, 9, 10]) L # L 變成[1, 7, 9, 8, 9, 10], 等價於 L = L + [8, 9, 10]
2. 元組
元組(Tuple)
元組是一種有序且不可更改的集合, 允許重復的成員
元組與列表的類似,不同之處在於元組元素不可修改
元組使用()定義,元素之間使用,分隔。例:(a, b, …)
元組中只包含一個元素時,可以省略(),只需要在元素後加逗號
init_tuple = 100,type(init_tuple) # ---> tuple# ---- 另外寫法init_tuple = (100, ) # 逗號一定要加
注意:如果一個非元組類型的數據突然變成元組,檢查是不是誤加了逗號
集合與元組的通用方法
元組[索引]:從元組中取值,獲取指定索弓丨的元素
元組[開始索引:結束索引:步長]:
返回從開始索引到結束索引-1的元組,如果設置步長,按步長跳過元素
len(元組):獲取元組的長度
元素in元組:判斷元素是否在元組中
元組.count(元素):返回指定元素在元組中的個數
元組.index(元素):返回指定元素在元組中第一次出現的索引,查找失敗會報錯
元組和列表之間的轉換
list(元組):將元組轉換成列表
tuple(列表): 將列表轉換成元組
3. 集合
集合(Set)
集合是一種無序和無索引的序列。沒有重復的元素
集合會自動刪除重復的元素,一般應用於去重、交並差運算場景
集合使用{}定義,元素之間使用,分隔。例:{a, b, …}
集合與列表的通用方法
len(集合):獲取集合的長度
元素in集合:判斷元素是否在集合中
集合.clear(): 清空集合
集合特有的使用方法
s = {1, 2, 3}
集合.add(元素):將元素添加到集合中
s.add(5) # ---> {1, 2, 3, 5}
集合1.update(集合2): 添加新的元素或集合到當前集合中
s.add{4, 5, 6} # ---> {1, 2, 3, 5, 4, 6}
集合.remove(元素): 刪除指定的元素,元素不存在時報錯
s.remove(4) # ----> {1, 2, 3, 5, 6}
集合1&集合2 : 交集,獲得由集合1和集合2中都存在的元素組成的新集合
s & {3, 4, 5} # ---> {3, 5}
集合1|集合2: 並集,獲得集合1和集合2中所有元素的新集合
s | {8, 9, 10} # ---> {1, 2, 3, 5, 6, 8, 9, 10}
集合1 - 集合2 : 差集,獲得在集合1中存在但是在集合2中不存在的元素集合
s - {9, 10} # ---> {1, 2, 3, 5, 6, 8}
集合和列表之間的轉換(也可以和元組進行轉換,方式類似)
list(集合):將集合轉換成列表
set(列表):將列表轉換成集合
㈦ python中如何刪除列表中的所有元素
a=[1,2,3]
a.clear()
㈧ python--set(集合)
一、創建集合
創建非空集合:集合中set括弧中需要的參數的數據類型有:序列(包括字元串、列表、元組),字典可以轉為集合,注意數值類型不能作為集合的參數,如int類型。
二、添加元素
add() 方法是將要添加的元素作為一個整體添加到集合中
update() 方法是把要傳入的元素拆分成單個字元,存於集合中,並去掉重復的
三、刪除元素
集合的刪除操作使用的方法跟列表是一樣的,使用的也是 remove 方法,只能單個刪除
四、遍歷集合
五、集合與字元串、列表、元組互轉,集合轉字典
六、查找元素並刪除
函數原型: a.discard(b)
參數說明:a為一個set類型的變數;b表示要查找並刪除的元素
函數作用:在集合setVar中查找element元素,如果存在則刪除;如果沒找到,則什麼也不做。該函數沒有返回值
七、pop用法
函數原型: set1.pop() 刪除並返回集合set1中的第一個元素,如果為空引發KeyError錯誤+
八、clear、和len的用法
clear 方法用於清空集合中的所有元素
方法用於集合拷貝
len 跟求序列的長度的函數len()是一樣的,返回的是集合中有多少個元素
九、求集合的交集、並集、差集和difference的用法
求集合的 交集 使用的符號是 「&」
求集合的 並集 用的是符號 「|」
求集合的 差集 使用的符號是減號 「-」
difference 等價於集合的差集 ,查看兩個集合的不同之處。這種不同指的是集合s1相對於集合s2,不同的地方,也就是所有在集合s1中,而不再集合s2中的的元素組成的新集合
十、運算符判斷集合間關系和issuperset、issubset的用法
集合可以使用大於(>)、小於(<)、大於等於(>=)、小於等於(<=)、等於(==)、不等於(!=)來判斷某個集合是否完全包含於另一個集合,也可以使用子父集判斷函數。
issuperset 集合st1是否是集合st2的父集
issubset 集合st1是否是集合st2的子集
十一、不可變集合frozenset的用法
frozenset 該集合中的內容是不可改變的,其他功能及操作跟可變集合set一樣
㈨ Python基礎實戰之集合元素的添加和刪除
集合元素的添加操作有兩種方法:
1、調用add()方法,一次添加一個元素
2、調用update()方法,至少添加一個元素
------------------------------
s={10,20,40,80}
s.add(30) #一次添加一個元素
print(s) #{10,30,20,40,80}
s.updae({200,300,400}) #一次至少添加一個元素
print(s) #{200,10,300,20,400,30,80,40}
s.update([800,900]) #可以添加列表
s.update((45,55)) #可以添加元組
print(s) #{200,5510,45,300,800,20,900,400,30,80,40}
------------------------------
集合元素的刪除操作
1、調用remove()方法,一次刪除一個指定元素,如果指定的元素不存在拋出KeyError
2、調用discard()方法,一次刪除一個指定元素,如果指定的元素不存在不拋異常
3、調用pop()方法,一次只刪除一個任意元素
4、調用clear()方法,清空集合
------------------------------
s.remove(200) #一次刪除一個指定元素,如果指定的元素不存在拋出KeyError
print(s) #{55,10,45,300,800,20,900,400,30,80,40}
s.discard(900) #一次刪除一個指定元素,如果指定的元素不存在不拋異常
print(s) #{55,10,45,300,800,20,400,30,80,40}
s.pop() #刪除誰不知道,任意一個元素
print(s) #{55,10,45,800,20,400,30,80,40}
s.clear() #清空集合中的所有元素
print(s) #set()
㈩ Python del 語句的用法是什麼樣
5.2. del 語句
有個方法可以從列表中按給定的索引而不是值來刪除一個子項: del 語句。它不同於有返回值的 pop() 方法。語句 del 還可以從列表中刪除切片或清空整個列表(我們以前介紹過一個方法是將空列表賦值給列表的切片)。例如:
>>> a = [-1, 1, 66.25, 333, 333, 1234.5]
>>> del a[0]
>>> a
[1, 66.25, 333, 333, 1234.5]
>>> del a[2:4]
>>> a
[1, 66.25, 1234.5]
>>> del a[:]
>>> a
[]
del 也可以刪除整個變數:
>>> del a
此後再引用命名 a 會引發錯誤(直到另一個值賦給它為止)。我們在後面的內容中可以看到 del 的其它用法。