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")
时间: 2024-10-17 11:56:50

python列表及for循环要注意的知识点的相关文章

python 列表推导式----轻量级循环

列表推导式(list comprehension)是利用其他列表创建新列表(类似于数学术语中的集合推导式)的一种方法.它的工作方式类似于for循环,也很简单: In [39]: [x*x for x in range(10)]Out[39]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] 如果只想打印出那些能被3整除的平方数,只需要通过添加一个if部分在推导式中就可以完成: In [41]: [x*x for x in xrange(10) if x % 3 == 0

python列表的遍历与循环

在游戏中,可能需要将每个界面元素平移相同的距离: 对于包含数字的列表,可能需要对每个元素执行相同的统计运算: 在网站中,可能需要显示文章列表中的每个标题. 经常需要遍历列表的所有元素,对每个元素执行相同的操作. 需要对列表中的每个元素都执行相同的操作时,可使用Python中的for循环. 遍历整个列表 假设有一个魔术师名单,需要将其中每个魔术师的名字都打印出来.为此,可以分别获取名单中的每个名字,但这种做法会导致多个问题. 例如,如果名单很长,将包含大量重复的代码. 另外,每当名单的长度发生变化

python 列表生成式

列表特性:列表是一次性生成的 a = [1,2,3,4,5,6,7,8,9] 或 [ i*2 for i in range(10)]  ###--->列表生成式 ===[2,4,6,8,10,12,14,16,18,20]=== 两个列表的区别: 1列表是写死的,2列表可以里面做一些操作把相应的东西输出出来 列表生成式目的是为了使代码更简洁,且可以实现更复杂的功能,如将i的值传至函数中 [fun(i)  for i in range(10)] 生成式:通过生成式可以直接创建一个列表,但受内存大小

python实现简单的循环购物车小功能

python实现简单的循环购物车小功能 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s", 5000), ("book python", 81), ("iwach", 3200), ("电视机", 2200) ] def zero(name): if len(name) == 0: print("\033[31;1m您的输

Python列表、元组、字典和字符串的常用函数

Python列表.元组.字典和字符串的常用函数 列表方法 1.ls.extend(object) 向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中包含3个元组),相当于ls和object合并.注意:object如果是整型,必须以列表的方式传入,不可以以整型或元组的方式传入 2.ls.append(object) 将object作为一个整体插入到ls最后,object可以是字符串,元组,列表和字典 3.ls.insert(index, object

python 列表生成器

python 列表生成器 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 一个循环 在C语言等其他语言中,for循环一般是这样的 如果python也这么写,那么真该看下python的基础教程了~ 但要注意的是,需要加一个[]来,否则会报错... 在上面的例子中,不仅可以嵌套for,甚至可以嵌套if语句 再看看,原来是什么样子 两个循环呢? 原来可能是这样的? 现在可以这样了!!!

python\列表和生成器表达式

一.协程函数的应用 写一个装饰器用于让协程函数不需要输入再执行一次next()函数 分析: 在装饰器中生成该协程函数的生成器, 并且执行一次next()函数 def firstNext(func): def wrapper(*args, **kwargs): g = func(*args, **kwargs) next(g) return g return wrapper @firstNext def eater(name): print("{} start to eat".forma

python(四)循环语句

条件判断与循环语句 目录: 1.python循环语句介绍 2.条件判断  [if ,elif, else] 3.循环语句  [for,while] Python 循环语句 前提:如果让你1-100之间的整数,你用程序应该怎么实现. 本章节将向大家介绍Python的循环语句,程序在一般情况下是按顺序执行的. 编程语言提供了各种控制结构,允许更复杂的执行路径. 循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式: Python提供了for循环和while循环 循环

python列表、字典、字符串常用操作

Python 列表.字典.字符串常用操作 1.字符串操作 字符串可以通过下标取值,但由于字符串是不可变变量,不可通过下标来修改值. str = 'lily terry mark' name[0]    #获取第1个字符串值 name[0:7]   #获取第1~7的字符串值 name[:7]   #缺省开始位置,默认从第1个元素开始取值 name[0:]   #缺省结束位置,默认到字符串末尾结束 字符串包含判断操作符:in .not in .is 'lily' in names 'lily' no