【Python基礎】用while循環處理列表和字典

本文標識 : 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---  安其拉很想參加王者巔峰賽.  凱很想參加王者巔峰賽.

期待您的進步