zoukankan      html  css  js  c++  java
  • while循环处理列表和字典

    一、在列表之间移动元素

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

    其中一种方法是使用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("
    The 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’。

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

  • 相关阅读:
    web字体
    解决input之间的空隙
    CSS基础:text-overflow:ellipsis溢出文本
    css3控制内容的可选择性
    设置dt height 保证dd在同一行
    extjs Ext.Ajax.request 同步和异步
    jquery 同步和异步请求
    freemarker 基础
    freemarker简单使用示例
    【数据结构】线性表顺序结构的操作---C/C++语言
  • 原文地址:https://www.cnblogs.com/tizer/p/10961467.html
Copyright © 2011-2022 走看看