一、在列表之间移动元素
假设有一个列表,里面存放的是网站新注册但没有验证的用户,验证这些用户后,如何将它们移动到另一个已验证用户列表中呢?
其中一种方法是使用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’。
我的兴趣爱好分动态和静态,动态就是翻身,静态就是睡觉