python笔记---while处理列表与字典

    xiaoxiao2022-07-07  188

    Python while循环处理列表和字典

            while循环处理列表和字典

            for循环是一种遍历列表的有效方式,但在for循环中不应修改列表,否则将导致Python难以跟踪其中的元素。要在遍历列表的同时对其进行修改,可使用while循环。

            通过将while循环同列表和字典结合起来使用,可收集、存储并组织大量输出,供以后查看和显示。

    在列表之间移动元素

    #首先,创建一个待验证用户列表 #和一个用于存储已验证用户的空列表 unconfirmed_users =[ 'alice', 'brian', 'candace'] confirmed_users = [] #验证每个用户,直到没有未验证用户为止 #将每个经过验证的列表都移到已验证的用户列表中 while unconfirmed_users: current_user = unconfirmed_users.pop() print( "Verifying user: " + current_user.title()) #显示所有已验证的用户 print( "\nThe following users have been confirmed:") for confirmed_user in confirmed_users: print(confirmed_user.title())

            模拟过程,打印一条验证消息并将用户加入到已验证用户列表中。未验证用户列表越来越短,而已验证的用户列表越来越长。未验证用户列表为空后结束循环,再打印已验证的用户列表:

    Verifying user: Candace Verifying user: Brian Verifying user: Alice The following users have been confirmed: Candace Brian Alice

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

            使用函数remove()来删除列表中的特定值,因为函数remove()删除特定值。如果列表包含了多个相同条件的特定值,可以使用while循环进行逐一删除。

    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']

    使用用户输入来填充字典

            更多时候,字典中存储的信息都是记录用户输入的信息。将收集的数据存储在一个字典中,以便将回答和被调查者关联起来:

    responses = {} #设置一个标签,指出调查是否继续 polling_active = True while polling_active: #提示输入被调查者的名字和回答 name = input( "\nWhat is your name? ") response = input( "Which mountain would you like to climb someday? ") #将答案存储在字典中 response[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 " + respose + ".")

    打印输出结果

    what is your name? Eric Which mountain 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 Resultes --- Lynn would like to climb Devil's Thumb. Eric would like to climb Denali.

    最新回复(0)