【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--- 安其拉很想参加王者巅峰赛. 凯很想参加王者巅峰赛.
期待您的进步