while循環處理列表和字典


一、在列表之間移動元素

  假設有一個列表,里面存放的是網站新注冊但沒有驗證的用戶,驗證這些用戶后,如何將它們移動到另一個已驗證用戶列表中呢?

其中一種方法是使用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’。

 

 

  我的興趣愛好分動態和靜態,動態就是翻身,靜態就是睡覺


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM