補充給⼀一個字符串串基本操做
列列表: 循環刪除列列表中的每⼀一個元素
li = ["李李嘉誠", "麻花藤", "⻩黃海海峯", "劉嘉玲"] s = "".join(li)
print(s)
li = "⻩黃花⼤大閨⼥女女"
s = "".join(li) print(s)
li = [11, 22, 33, 44]
for e in li:
li.remove(e)
print(li)
結果: [22, 44]
分析緣由:
for的運⾏行行過程. 會有⼀一個指針來記錄當前循環的元素是哪⼀一個, ⼀一開始這個指針指向第0
個. 而後獲取到第0個元素. 緊接着刪除第0個. 這個時候. 原來是第⼀一個的元素會⾃自動的變成 第0個. 而後指針向後移動⼀一次, 指向1元素. 這時原來的1已經變成了了0, 也就不會被刪除了了.
⽤用pop刪除試試看:
li = [11, 22, 33, 44]
for i in range(0, len(li)):
del li[i]
print(li)
結果: 報錯app
通過分析發現. 循環刪除都不⾏行行. 不管是⽤用del仍是⽤用remove. 都不能實現. 那麼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:
del_li.append(e)
for e in del_li:
li.remove(e)
print(li)
注意: dict中的fromkey(),能夠幫咱們經過list來建立⼀一個dict
前⾯面列列表中的每⼀一項都會做爲key, 後⾯面列列表中的內容做爲value. ⽣生成dict 好了了. 注意:
因爲刪除元素會致使元素的索引改變, 因此容易易出現問題. 儘可能量不要再循環中直接去刪
除元素. 能夠把要刪除的元素添加到另⼀一個集合中而後再批量量刪除.
dic = dict.fromkeys(["jay", "JJ"], ["周杰倫", "麻花藤"]) print(dic)
結果:
{'jay': ['周杰倫', '麻花藤'], 'JJ': ['周杰倫', '麻花藤']}指針
dic = dict.fromkeys(["jay", "JJ"], ["周杰倫", "麻花藤"]) print(dic)
dic.get("jay").append("胡⼤大") print(dic)
結果:
{'jay': ['周杰倫', '麻花藤', '胡⼤大'], 'JJ': ['周杰倫', '麻花藤', '胡⼤大']}
代碼中只是更更改了了jay那個列列表. 可是因爲jay和JJ⽤用的是同⼀一個列列表. 因此. 前⾯面那個改了了. 後
⾯面那個也會跟着改
dict中的元素在迭代過程當中是不容許進⾏行行刪除的
dic = {'k1': 'alex', 'k2': 'wusir', 's1': '⾦金金⽼老老闆'} # 刪除key中帶有'k'的元素
for k in dic:
if 'k' in k:
del dic[k]
代的時候不不容許進⾏行行刪除操做
print(dic)索引
那怎麼辦呢? 把要刪除的元素暫時先保存在⼀一個list中, 而後循環list, 再刪除
dic = {'k1': 'alex', 'k2': 'wusir', 's1': '⾦金金⽼老老闆'} dic_del_list = []rem
for k in dic:
if 'k' in k:
dic_del_list.append(k)
for el in dic_del_list:
del dic[el]
print(dic)字符串