­

【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---  安其拉很想参加王者巅峰赛.  凯很想参加王者巅峰赛.

期待您的进步