码迷,mamicode.com
首页 > 其他好文 > 详细

while循环处理列表和字典

时间:2019-06-02 01:47:24      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:wing   family   删除   mes   mil   OLE   有一个   been   follow   

一、在列表之间移动元素

  假设有一个列表,里面存放的是网站新注册但没有验证的用户,验证这些用户后,如何将它们移动到另一个已验证用户列表中呢?

其中一种方法是使用while循环,在验证用户的同时,将其从未验证的用户列表中移除,将之加入到已验证用户列表中,代码类似于这样:

#首先我们创建一个未认证用户列表
unconfirmed_users = [alice,joker,jack]
confirmed_users = []

#验证每个用户直到没有未验证用户为止
# 还需要将每个验证过的用户移入已验证用户列表
while unconfirmed_users:
    current_user = unconfirmed_users.pop()
    print("Verifing 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())

console:

技术图片

解释:我们首先创建一个未验证的用户列表,又创建了一个空的已认证的用户列表用于存储已验证用户。

while循环不断地运行直到unconfirmed_users 列表变为空的。在这个循环中,方法 pop() 以每次一个的方

式从列表 unconfirmed_users 末尾删除未验证用户。由于 jack 位于unconfirmed_users 列表末尾,所以其

名字首先被删除、存储到变量current_user 中并加入到列表confirmed_users 中,接下来是 joker、alice。

 

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

 remove()方法可以用来删除列表中的特定值,但也只能删除列表中所出现的第一次的特定值。如果要删除列

表中所有特定值,如何去做?

用while循环加上remove() 方法即可实现,如下:

names = [jack,joker,jack,joker,alice,nacy]

#假设我们要删除其中所有的‘joker’
while joker in names:
    names.remove(joker)
    
print(names)

console:

技术图片

解释:我们首先创建了一个姓名列表,里面包含多个‘值为joker’元素,然后进入while循环进行条件判断,

‘joker‘ 存在于names 中,所以进入循环,执行remove,删除了列表中的第一个‘joker’,然后回到while条

件判断,names 中是否还存在‘joker’,存在,继续执行循环中的语句,此时则删除了第二个‘joker’,再次

回到了while 条件的判断,此时names中不存在‘joker’了,不会执行while循环里的语句了,继续往下,执

行,打印 names,names中的‘joker’已被全部删除,所以打印中不存在‘joker’。

 

 

  我的兴趣爱好分动态和静态,动态就是翻身,静态就是睡觉

while循环处理列表和字典

标签:wing   family   删除   mes   mil   OLE   有一个   been   follow   

原文地址:https://www.cnblogs.com/tizer/p/10961467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!