python列表及for循环要注意的知识点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python列表及for循环要注意的知识点相关的知识,希望对你有一定的参考价值。


列表可以嵌套不同的数据类型,如下是在列表中嵌套字典

a = [{"name":‘zhouziqi‘,‘contact‘:17806762943},{"name":‘zhouyu‘,‘contact‘:13246910612}]
for i in a:
    print(i)

技术分享

我们可以用for循环去显示每个字典 

如果想找一个名字为zhouziqi的信息,思路是这样的,让a列表中的每个字典一个个的赋值给i,这样i就是字典,如果想要找到字典中的‘name‘就可以用i[‘name‘]

a = [{"name":‘zhouziqi‘,‘contact‘:17806762943},{"name":‘zhouyu‘,‘contact‘:13246910612}]
for i in a:
    print(i[‘name‘])

这个在以后会经常用到哦

下面我们说一个for循环要注意的小点,直接看例子:

a = [{"name":‘zhouziqi‘,‘contact‘:17806762943},{"name":‘zhouyu‘,‘contact‘:13246910612}]
name = input("Please input name:")
for i in a: #把a列表中的字典一个个的赋予给变量i
    if name == i[‘name‘]: #判断用户输入name的值是否等于在i字典中key为name的值
        print("the name is exist") #如果存在就输出正确信息
    else:
        print("None") #这是不正确的信息

从上面代码中看不出任何的毛病,你可以执行一下:

技术分享

为什么明明我们输入了zhouziqi这个名字是存在的,却又说这个name存在,又说这个名字不存在呢?

因为我们的a列表里面有两个字典对吧,当我们执行上面代码的第二行的时候,也就是让用户输入一个值,我们输入zhouziqi,这时候name就等于zhouziqi,进入第三行代码,i的第一个值就是字典{"name":‘zhouziqi‘,‘contact‘:17806762943},然后进行第四行代码,判断name的值是否等于{"name":‘zhouziqi‘,‘contact‘:17806762943}字典中key为name的值,结果zhouziqi是等于zhouziqi的,这时候等式成立了,第五行代码,打印正确信息,这就出现了the name is exist,那为什么还有个None的错误信息打印出来呢,因为a里面是两个字典,刚刚我们{"name":‘zhouziqi‘,‘contact‘:17806762943},现在就用第二个字典{"name":‘zhouyu‘,‘contact‘:13246910612},发现不成立就打印出错误信息。这和我们想的不一样呀,那么我们能不能让它判断有这个名字了就自己break出来呢。这样还是有问题的哦,你看看以下代码

a = [{"name":‘zhouziqi‘,‘contact‘:17806762943},{"name":‘zhouyu‘,‘contact‘:13246910612}]
name = input("Please input name:")
for i in a:
    if name == i[‘name‘]:
        print("the name is exist")
        break
    else:
        print("None")

我们执行一下,这样输入zhouyu

技术分享

为什么会出现None,因为和上面的一样,i的第一个值是{"name":‘zhouziqi‘,‘contact‘:17806762943}判断出name(也就是zhouyu)不等于i[‘name‘](也就是zhouziqi)所以就打印出None,然后第二个字典是{"name":‘zhouyu‘,‘contact‘:13246910612},这才匹配成功输出the name is exist。那我们应该怎么办呢?

因为不管怎么样,都会出现None,那么我们能不能不要这个else呢,答案是确定的,可以不要这个else,然后在外面定义一个值为false_number默认值为0,然后在for循环里面,如果我们找到用户输入的name就更改false_number的值为1,然后用break跳出循环,在外面我们再去判断false_number是否为1,如果是说明这个name就存在于数组中的字典中,否则就不存在

a = [{"name":‘zhouziqi‘,‘contact‘:17806762943},{"name":‘zhouyu‘,‘contact‘:13246910612}]
name = input("Please input name:")
false_number = 0
for i in a:
    if name == i[‘name‘]:

        false_number = 1
    if false_number == 1:
        break
if false_number == 1:
    print("the name is exist")
else:
    print("None")


本文出自 “爱周瑜” 博客,请务必保留此出处http://izhouyu.blog.51cto.com/10318932/1965950

以上是关于python列表及for循环要注意的知识点的主要内容,如果未能解决你的问题,请参考以下文章

python系统学习08for循环知识点合集

python中的while循环与for循环怎么样那个比较好用?

代码学习PYTHON 列表循环遍历及列表常见操作

操作列表

c_cpp 这个简单的代码片段显示了如何使用有符号整数在C中完成插值。 for()循环确定要插入的范围

Python学习————流程控制之for循环