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

本文介绍了如何在Python中使用while循环而非for循环来遍历并修改列表,如移动元素、删除特定值的元素。同时展示了如何用while循环收集用户输入以填充字典,并展示结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


1、在列表之间移动元素

#helloword.py
unconfirmed_users=['alice','brian','candace']
confirmed_users=[]
while unconfirmed_users:   #当列表不为空
      current_user=unconfirmed_users.pop()
      print("Verifying user:"+current_user.title())
      confirmed_users.append(current_user)
print("\nThe follwing users have been confirmed:")
for confirmed_user in confirmed_users:
    print(confirmed_user.title())

输出为:

D:\www>python helloword.py
Verifying user:Candace
Verifying user:Brian
Verifying user:Alice

The follwing users have been confirmed:
Candace
Brian
Alice

2、删除包含特定值得所有列表元素

假设有一个宠物列表,其中包含多个值为cat的元素,要删除所有包含cat的元素

#helloword.py
pets=['dog','cat','dog','goldfish','cat','rabbit','cat']
print(pets)
while 'cat' in pets:
      pets.remove('cat')
print(pets)
输出为:

D:\www>python helloword.py
['dog', 'cat', 'dog', 'goldfish', 'cat', 'rabbit', 'cat']
['dog', 'dog', 'goldfish', 'rabbit']


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

#helloword.py
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+".")


输出为:

D:\www>python helloword.py

what is your name?jin
which mountain would you like to climb someday?zhu
would you like to let another person respond?(yes/no)yes

what is your name?han
which mountain would you like to climb someday?mu
would you like to let another person respond?(yes/no)no

--Poll results---
jin would like to climb zhu.
han would like to climb mu.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值