我是靠谱客的博主 真实牛排,最近开发中收集的这篇文章主要介绍Python -- 使用while循环来处理列表和字典,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用while循环来处理列表和字典

要记录大量的用户和信息,需要在while循环中使用列表和字典。
for循环是一种遍历列表的有效方式,但在for循环中不应修改列表,否则将导致Python难以跟踪其中的元素。
要在遍历列表的同时对其进行修改,可使用while循环。通过将while循环同列表和字典结合起来使用,可收集、存储并组织大量输入,供以后查看和显示。

1.在列表之间移动元素

假设有一个列表,其中包含新注册但还未验证的网站用户;验证这些用户后,如何将他们移到另一个已验证用户列表中呢?
一种办法是使用一个while循环,在验证用户的同时将其从未验证用户列表中提取出来,再将其加入到另一个已验证用户列表中。代码可能类似于下面这样:

# 首先,创建一个待验证用户列表
# 和一个用于存储已验证用户的空列表
unconfirmed_users = ['zjb', 'zhang', 'bin']
confirmed_users = []
# 验证每个用户,直到没有未验证用户为止
#
将每个经过验证的列表都移到已验证用户列表中
while unconfirmed_users:
current_user = unconfirmed_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.title())

while循环将不断地运行,直到列表unconfirmed_users变成空的。
pop()以每次一个的方式从列表unconfirmed_users末尾删除未验证的用户。
输出结果为:

Verifying user: Bin
Verifying user: Zhang
Verifying user: Zjb
The following users have been confirmed:
Bin
Zhang
Zjb

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

我们使用函数remove()来删除列表中的特定值,这之所以可行,是因为要删除的值在列表中只出现了一次。
如果要删除列表中所有包含特定值的元素,该怎么办呢?
例如:

pets = ['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
print(pets)
while 'cat' in pets:
pets.remove('cat')
print(pets)

打印列表:

['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
['dog', 'dog', 'goldfish', 'rabbit']

3.使用用户输入来填充字典

可使用while循环提示用户输入任意数量的信息:

responses = {}
# 设置一个标志,指出调查是否继续
polling_active = True
while polling_active:
# 提示输入被调查者的名字和回答
name = input("nWhat is your name? ")
response = input("Which mountain would you like to climb someday? ")
# 将答卷存储在字典中
responses[name] = response
# 看看是否还有人要参与调查
repeat = input("Would you like to let another person respond? (yes/ no) ")
if repeat == 'no':
polling_active = False
# 调查结束,显示结果
print("n--- Poll Results ---")
for name, response in responses.items():
print(name+" would like to climb "+response+".")

这个程序首先定义了一个空字典,并设置了一个标志(polling_active),用于指出调查是否继续。
只要polling_active为True,Python就运行while循环中的代码。
将这些信息存储在字典responses中,然后询问用户调查是否继续。
如果用户输入yes,程序将再次进入while循环;
如果用户输入no,标志polling_active将被设置为False,而while循环将就此结束。
输出结果为:

What is your name?Eric
Which mountain would you like to climb someday?Denali
Would you like to let another person respond? (yes/ no) yes
What is your name?Lynn
Which mountain would you like to climb someday?Devil's Thumb
Would you like to let another person respond? (yes/ no) no
--- Poll Results ---
Lynn would like to climb Devil's Thumb.
Eric would like to climb Denali.

最后

以上就是真实牛排为你收集整理的Python -- 使用while循环来处理列表和字典的全部内容,希望文章能够帮你解决Python -- 使用while循环来处理列表和字典所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部