目錄
lst = [1,2,3,4,5,6]
for i in lst:
print(lst)
print(lst)
列表: 迴圈刪除列表中的每⼀個元素
li = [11, 22, 33, 44]
for e in li:
li.remove(e)
print(li)
結果:[22, 44]
分析原因: for的運⾏過程. 會有⼀個指標來記錄當前迴圈的元素是哪⼀個, ⼀開始這個指標指向第0 個.
然後獲取到第0個元素. 緊接著刪除第0個. 這個時候. 原來是第⼀個的元素會⾃動的變成 第0個.
然後指標向後移動⼀次, 指向1元素. 這時原來的1已經變成了0, 也就不會被刪除了.
li = [11, 22, 33, 44]
for i in range(0, len(li)):
del li[i]
print(li)
結果: 報錯
# 刪除的時候li[0] 被刪除之後. 後⾯⼀個就變成了第0個.
# 以此類推. 當i = 2的時候. list中只有⼀個元素. 但是這個時候刪除的是第2個 肯定報錯啊
經過分析發現. 迴圈刪除都不⾏. 不論是⽤del還是⽤remove. 都不能實現. 那麼pop呢?
用pop刪除試一試
for el in li:
li.pop() # pop也不⾏
print(li)
結果:[11, 22]
只有這樣才是可以的:
for i in range(0, len(li)): # 迴圈len(li)次, 然後從後往前刪除
li.pop()
print(li)
或者. ⽤另⼀個列表來記錄你要刪除的內容. 然後迴圈刪除
li = [11, 22, 33, 44]
del_li =
for e in li:
for e in del_li:
li.remove(e)
print(li)
li = [1,2,3,4]
lst = li[:]
for i in lst:
li.remove(i)
print(li)
注意: 由於刪除元素會導致元素的索引改變, 所以容易出現問題. 盡量不要再迴圈中直接去刪除元素. 可以把要刪除的元素新增到另⼀個容器中然後再批量刪除.
dict中的fromkey(),再次重提 可以幫我們通過list來建立⼀個dict
dic = dict.fromkeys(["jay", "jj"], ["周杰倫", "麻花藤"])
print(dic)
結果:
**中只是更改了jay那個列表. 但是由於jay和jj⽤的是同⼀個列表. 所以. 前⾯那個改了. 後面那個也會跟著改
dict中的元素在迭代過程中是不允許進⾏新增
和刪除
的
dic =
# 刪除key中帶有'k'的元素
for k in dic:
if 'k' in k:
del dic[k] # dictionary changed size during iteration, 在迴圈迭
代的時候不允許進⾏刪除操作
print(dic)
那怎麼辦呢? 把要刪除的元素暫時先儲存在⼀個list中, 然後迴圈list, 再刪除
dic =
dic_del_list =
# 刪除key中帶有'k'的元素
for k in dic:
if 'k' in k:
for el in dic_del_list:
del dic[el]
print(dic)
# 使用兩個字典進行刪除
dic =
dic1 = dic.copy()
for i in dic1:
dic.pop(i)
print(dic)
set1 =
for i in set1:
set1.pop()
print(set1)
traceback (most recent call last):
file "/python專案/m2.py", line 224, in for i in set1:
runtimeerror: set changed size during iteration
set1 =
set2 = set1.copy()
for i in set2:
set1.remove(i)
print(set1)
元組 => 列表 list(tuple)
列表 => 元組 tuple(list)
list=>str str.join(list)
str=>list str.split()
轉換成false的資料:
0,'',none,,(),{},set() ==> false
常見的資料型別的操作
列表 print 第三個元素為 list 2 list 2 2001 print 更新後的第三個元素為 list 2 print 原始列表 list del list 2 print 刪除第三個元素 list 2 元組操作,以下修改元組元素操作是非法的。tup1 0 100 建立乙個新的元組 pri...
字典資料型別 字典常見操作
1.1從字典裡取值,不丟擲異常 d d1 print d.get key not found print d1.get 1,not found print d1.get seq 2,3 print d1.get 2,a b c 獲取字典的值同時刪除該項 print d1.pop 1 none pri...
常見的資料型別
整型 整型包括短整型 short 整型 int 長整型 long 在細分又可以分為有符號型 signed 和無符號型 unsigned 浮點型浮點型包括單精度浮點型 float 雙精度浮點型 double 他們都是有符號的資料型別。布林型布林型的取值只有true 真 和false 假 對於他來說就是...