有时候我们要记录大量的数据就需要在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、创建一个空字典,然后通过用户输入来完整字典内容
领取专属 10元无门槛券
私享最新 技术干货