首页
学习
活动
专区
工具
TVP
发布

第二十课 while循环(二)

有时候我们要记录大量的数据就需要在while循环中使用列表和字典,其实for循环也是一种遍历列表的好方法,可是呢,我们用for循环有一个不好的地方在于我们不能及时修改列表,否则for循环无法跟踪其中的元素,因此,如果我们想对列表进行批量循环处理的时候,又想修改其中的值,那么就要用到while循环。

例子如下:

numbers=['1','2','3']

new_numbers=[]

while numbers:

current=numbers.pop()

print(current)

new_numbers.append(current)

for new_number in new_numbers:

print(new_number)

结果是:

首先我们创建一个含有字符串的列表和一个空列表,我们现在的目的是将第一个列表里面的内容添加到第二个列表里面。于是我们创建了一个有关于第一个列表的while循环。

在while循环里面,我们先用pop()将第一个列表里面的元素抽出,赋值给一个变量,然后把这个变量的值添加到第二个列表中,最后再通过for循环将第二个列表中的内容遍历打印出来。

整个程序很简单,大家只要梳理好其中的逻辑就能理解了。

删除列表里所有相同的元素

我们删除列表里面的值可以用.remove(),也可以用.pop()。但是这两种每次都只能执行单个元素,如果我们现在要删除大批量重复的元素该怎么办呢?

代码如下:

pets={'dog','cat','bird','cat','cat'}

while 'cat' in pets:

pets.remove('cat')

print(pets)

结果是:

{'bird', 'dog'}

python进入while循环以后,python删除第一个cat以后返回到while,然后再执行一遍发现还有cat,于是再次删除cat以后再次回到while循环,如此反复,知道列表里面没有cat为止。

使用输入来完整字典

有时候我们的字典一开始是空的,我们必须用户给我们内容以后,我们将用户输入的内容制作成字典。这种情况就要这样:

information={}

run=True

while run:

name=input("what's your name:")

number=input("what's your favorite number")

information[name]=number

repeat=input("print'yes' to continue or print'no' to end")

if repeat=='no':

run=False

print(information)

首先创建一个空字典,然后建立一个标志。在这个while循环中,我们将用户输入的内容分别赋值给nume和number两个变量,然后用以前学过的添加字典元素的方式,将两个变量添加进字典。最后再打印一行提示,告知用户输入yes继续,no就停止。然后用if语句来做标志的判定。最后打印字典结束。

作业

1、创建一个带有元素的列表和一个空列表,并使用while循环将列表的元素转移到空列表里面。

2、创建一个带有重复元素的列表,并用while循环删除其中的重复元素

3、创建一个空字典,然后通过用户输入来完整字典内容

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180331G16IOK00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券