前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python基础】用while循环处理列表和字典

【Python基础】用while循环处理列表和字典

作者头像
DataScience
发布2020-01-01 22:14:43
2.8K0
发布2020-01-01 22:14:43
举报
文章被收录于专栏:A2DataA2Data

本文标识 : P00019

本文编辑 : 采药

编程工具 : Python

阅读时长 : 5分钟

在列表之间移动元素

假设有个列表,包含了新注册但是未验证的网站用户,验证了这些用户以后,如何将他们移动到另一个已验证的列表中?

其中一个办法就是使用一个while循环。

代码语言:javascript
复制
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)

输出结果:

代码语言:javascript
复制
Verifying user: Candace
Verifying user: Brian
Verifying user: Alice

The following users have been confirmed: 
candace
brian
alice

这里我们创建了一个未验证用户的列表,还有一个空列表,while循环不断的运行,知道未验证的列表变成空的。

这个过程中,pop函数每一次都会把一个用户从未验证列表的末尾处删除,存入变量cruuent_user,然后将变量添加到空列表中。

删除包含特定值的所有列表元素

之前我们使用函数remove()删除列表中的特定值,这之所以能够运行,是因为要删除的值在列表中只出现了一次。

代码语言:javascript
复制
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列表中。

输出结果:

代码语言:javascript
复制
['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
['dog', 'dog', 'goldfish', 'rabbit']

使用input函数填充字典

我们可以用while玄幻提示用户输入任意数量的信息,下面就创建一个调查程序,其中的循环每次执行时都提示输入被调查的名字和回答。我们收集这些数据存入一个字典中,以便将回答同调查者关联起来。

代码语言:javascript
复制
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程序结束。

结果如下:

代码语言:javascript
复制
您的名字? 凯

有机会的话,你想去参加什么决赛? 王者巅峰赛
是否继续参与调查?(yes/no)yes

您的名字? 安其拉

有机会的话,你想去参加什么决赛? 王者巅峰赛
是否继续参与调查?(yes/no)no

---Poll Results---
安其拉很想参加王者巅峰赛.
凯很想参加王者巅峰赛.

期待您的进步

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-26,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 DataScience 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在列表之间移动元素
  • 删除包含特定值的所有列表元素
  • 使用input函数填充字典
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com