一、在列表之間移動元素
假設有一個列表,里面存放的是網站新注冊但沒有驗證的用戶,驗證這些用戶后,如何將它們移動到另一個已驗證用戶列表中呢?
其中一種方法是使用while循環,在驗證用戶的同時,將其從未驗證的用戶列表中移除,將之加入到已驗證用戶列表中,代碼類似於這樣:
#首先我們創建一個未認證用戶列表 unconfirmed_users = ['alice','joker','jack'] confirmed_users = [] #驗證每個用戶直到沒有未驗證用戶為止 # 還需要將每個驗證過的用戶移入已驗證用戶列表 while unconfirmed_users: current_user = unconfirmed_users.pop() print("Verifing user :" + current_user.title()) confirmed_users.append(current_user) #顯示所有已驗證用戶 print("\nThe following users have been confirmed:") for confirmed_user in confirmed_users: print(confirmed_user.title())
console:
解釋:我們首先創建一個未驗證的用戶列表,又創建了一個空的已認證的用戶列表用於存儲已驗證用戶。
while循環不斷地運行直到unconfirmed_users 列表變為空的。在這個循環中,方法 pop() 以每次一個的方
式從列表 unconfirmed_users 末尾刪除未驗證用戶。由於 jack 位於unconfirmed_users 列表末尾,所以其
名字首先被刪除、存儲到變量current_user 中並加入到列表confirmed_users 中,接下來是 joker、alice。
二、刪除包含特定值的所有列表元素
remove()方法可以用來刪除列表中的特定值,但也只能刪除列表中所出現的第一次的特定值。如果要刪除列
表中所有特定值,如何去做?
用while循環加上remove() 方法即可實現,如下:
names = ['jack','joker','jack','joker','alice','nacy'] #假設我們要刪除其中所有的‘joker’ while 'joker' in names: names.remove('joker') print(names)
console:
解釋:我們首先創建了一個姓名列表,里面包含多個‘值為joker’元素,然后進入while循環進行條件判斷,
'joker' 存在於names 中,所以進入循環,執行remove,刪除了列表中的第一個‘joker’,然后回到while條
件判斷,names 中是否還存在‘joker’,存在,繼續執行循環中的語句,此時則刪除了第二個‘joker’,再次
回到了while 條件的判斷,此時names中不存在‘joker’了,不會執行while循環里的語句了,繼續往下,執
行,打印 names,names中的‘joker’已被全部刪除,所以打印中不存在‘joker’。
我的興趣愛好分動態和靜態,動態就是翻身,靜態就是睡覺