20210617 py字典复习一半

20210617 strat

今日目标

键值类型——字典型

要写写代码了,怕有些生疏

赶紧往下复习吧,很想看 面向对象那个部分,还有爬虫那里

新内容

字典

字典中的键值对,值除了可以是数字之外,还可以取任何数据类型,比如列表、元组,甚至是字典。

但键必须是不可变的数据类型,比如字符串、数字或元组,列表是可变的数据,不能用来当作字典的键。——以前没注意

案例——学员已经分好班,输入后,查找班级、姓名欢迎?——案例不好,但是方法可以实现

#  思路20210617 先判断班级,再在班级名单里遍历

代码

dict={1:['lize','shipengfei'],2:['xiaoyouzi','youzi','shijiayou'],3:['sjx','lcf']}

print(dict)

c=0

while True:

    inp_cl=input('cl no.\n')

    inp_name=input('name\n')

    for i in dict.keys():

        if int(inp_cl)==i: #!字符型要转换为int后再比较,否则永无相等

            for j in range(0,len(dict[i])):

                if inp_name==dict[i][j]:

                    print('welcome')

                    c=c+1  # 计数器作用,看是否有相等的

                    break

    if c>=1:

        break

理解:不仅字典中可以存放列表,列表中的元素也同样可以是字典。

代码1——理解列表里嵌套字典,这样也有无限可能

dict1 = {'姓名':'张三','专业':'美术','学号':'001'}

dict2 = {'姓名':'李四','专业':'计算机','学号':'002'}

dict3 = {'姓名':'王五','专业':'广告','学号':'003'}

student_info = [dict1,dict2,dict3]

#遍历列表,打印每个学生信息

for i in student_info:

    print(i)

list=[1,2,3,4]

for i in list:  # ——帮助回忆理解 list列表的打印输出是什么样的——其实就是一个元素一行

    print(i)

结果1

{'姓名': '张三', '专业': '美术', '学号': '001'}  ——每一个student_info 列表里的元素,是一个字典,所以打印出来带{}

{'姓名': '李四', '专业': '计算机', '学号': '002'}

{'姓名': '王五', '专业': '广告', '学号': '003'}

1

2

3

4

代码2——理解列表切片

dict1 = {'姓名':'张三','专业':'美术','学号':'001'}

dict2 = {'姓名':'李四','专业':'计算机','学号':'002'}

dict3 = {'姓名':'王五','专业':'广告','学号':'003'}

student_info = [dict1,dict2,dict3]

#打印列表中前两个元素

print(student_info[0:2])——因为是切片,而列表的切片仍是列表,所以最后是[]

结果2

[{'姓名': '张三', '专业': '美术', '学号': '001'}, {'姓名': '李四', '专业': '计算机', '学号': '002'}]

代码3——理解元组

dict1 = {'姓名':'张三','专业':'美术','学号':'001'}

dict2 = {'姓名':'李四','专业':'计算机','学号':'002'}

dict3 = {'姓名':'王五','专业':'广告','学号':'003'}

student_info = (dict1,dict2,dict3)

#打印列表中前两个元素

print(student_info)——因为元组不能切片,所以只能全部打印出来。&2.打印元组就是print(元组名不带括号)

元组也不能call 所以没有 print(student_info())

结果3

({'姓名': '张三', '专业': '美术', '学号': '001'}, {'姓名': '李四', '专业': '计算机', '学号': '002'}, {'姓名': '王五', '专业': '广告', '学号': '003'})  ——看输出 就是带()的元组哦

牛客网自测题

题目——反向输出

描述

将一个四位数,反向输出。

输入描述:

一行,输入一个整数n(1000 <= n <= 9999)。

输出描述:

针对每组输入,反向输出对应四位数。

思路20210617——字符串其实可以看做列表,倒序打印列表元素就好

具体代码

input_num=input()

for i in range(0,4):

    print(input_num[3-i],end="")

评测

运行时间 31ms

占用内存 6780KB

思路20210617——字符串好像没有倒序函数(reversed是啥的来着?)

20210617 end

今日收获

对字典和列表的组合使用有了新认识,但是目前正好卡在 修改列表中某个字典的某个键的值上——想一想

几种数据类型,又熟悉了一些,不过键值对遍历的问题还需熟练

还没新看到什么内容

而牛客网的题目没几个会的——有点难过,要加强学习哦!

你可能感兴趣的:(20210617 py字典复习一半)