【Python基礎】用while循環處理列表和字典
- 2020 年 1 月 1 日
- 筆記
本文標識 : P00019
本文編輯 : 採藥
編程工具 : Python
閱讀時長 : 5分鐘
在列表之間移動元素
假設有個列表,包含了新註冊但是未驗證的網站用戶,驗證了這些用戶以後,如何將他們移動到另一個已驗證的列表中?
其中一個辦法就是使用一個while循環。
un_users = ['alice','brian','candace'] #未驗證的用戶 confirmed_users = []#已驗證的用戶,暫時為空 while un_users: current_user = un_users.pop() print("Verifying 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)
輸出結果:
Verifying user: Candace Verifying user: Brian Verifying user: Alice The following users have been confirmed: candace brian alice
這裡我們創建了一個未驗證用戶的列表,還有一個空列表,while循環不斷的運行,知道未驗證的列表變成空的。
這個過程中,pop函數每一次都會把一個用戶從未驗證列表的末尾處刪除,存入變數cruuent_user,然後將變數添加到空列表中。
刪除包含特定值的所有列表元素
之前我們使用函數remove()刪除列表中的特定值,這之所以能夠運行,是因為要刪除的值在列表中只出現了一次。
pets=['dog','cat','dog','goldfish','cat','rabbit','cat'] print(pets) while 'cat' in pets: pets.remove('cat') print(pets)
pets列表有3個cat元素,while循環在發現cat至少出現了1次,所以會刪除1次,直到cat不在pets列表中。
輸出結果:
['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat'] ['dog', 'dog', 'goldfish', 'rabbit']
使用input函數填充字典
我們可以用while玄幻提示用戶輸入任意數量的資訊,下面就創建一個調查程式,其中的循環每次執行時都提示輸入被調查的名字和回答。我們收集這些數據存入一個字典中,以便將回答同調查者關聯起來。
responses={} #設置一個標誌,指出是否繼續調查 polling_active = True while polling_active: #提示輸入被調查者的姓名和回答 name = input("n您的名字? ") response =input("n有機會的話,你想去參加什麼決賽? ") #將用戶輸入的答案存入字典 responses[name]=response #看看是否還有人要參與調查 repeat = input("是否繼續參與調查?(yes/no)") if repeat =='no': polling_active = False #調查結束,顯示結果 print("n---Poll Results---") for name,response in responses.items(): print(name + "很想參加"+ response + ".")
首先程式定義了一個空字典,並設了一個標誌。
用戶輸入姓名後,會提問用戶想參加什麼比賽。
輸入yes程式繼續循環,輸入no程式結束。
結果如下:
您的名字? 凱 有機會的話,你想去參加什麼決賽? 王者巔峰賽 是否繼續參與調查?(yes/no)yes 您的名字? 安其拉 有機會的話,你想去參加什麼決賽? 王者巔峰賽 是否繼續參與調查?(yes/no)no ---Poll Results--- 安其拉很想參加王者巔峰賽. 凱很想參加王者巔峰賽.
期待您的進步