自动化快速上手--Python(7)--【字典】--每天半小时

清安无别事 2021-10-27 03:28:18
自动化 Python 快速 自动 上手

         这里是清安,V:qing_an_an,文章属于自动化快速上手系列,一直到selenium跟appium。有想法的朋友可以一起来看看了。别错过了。

目录

字典

添加键值对

删除键值对

修改键值对

实战综合运用

实战一

for循环 

遍历key值

实战2

遍历所有的值

去重

列表字典

实战三

实战四

字典存储字典

实战五


字典

        什么是字典:

        字典:是一系列的键值对,每一个键都会有对应的一个值关联,它们可以是数字 ,字符串,列表以及字典本身。用{}来表示。

# 创建一个字典
airship = {'color':'yellow','year':'100','qingan':'清安'}

        这个就是字典,'color'、'year'、'qingan'就是键,'yellow'、100、清安就是值,我们创建的这个飞船字典,还可以对它进行访问哦!

airship = {'color': 'yellow', 'year': '100', 'qingan': '清安'}
print(airship['qingan']+"的飞船颜色是"+airship['color'] +"今年"+ airship['year']+"岁了")

        注意:我们可以通过访问飞船的键来获取它的值,但是我们不能通过访问它的值来获取它的键,

添加键值对

# 创建一个字典
airship = {'color': 'yellow', 'year': '100', 'qingan': '清安'}
airship['money'] = 100000
airship['driving_speed'] = 2000
print(airship)

        这里我们添加了两个新的键与值。键为'money'、'driving_speed',值为10000,2000,中间用=号连接起来。添加键值对的格式就是这样的。

        小伙伴们也可以先创建一个空字典,再进行添加键值对哦,格式:airship = {},就是花括号里面什么也不写 ,就是空字典了。

删除键值对

airship = {'color': 'yellow', 'year': '100', 'qingan': '清安'}
del airship['year']
print(airship)

    我们也是使用del来进行删除,关于这个方法,清安在前面讲过哦,忘记了的赶紧去复习一下。

修改键值对

airship = {'color': 'yellow', 'year': '100', 'qingan': '清安'}
airship['color'] = 'red'
print(airship)

        修改字典中的值,我们直接指定键就可以了,像小北这样,指定color你可以将颜色改成任何一种颜色哦。

实战综合运用

        当你想写很多的键值对到字典中时,你可以:

language = {
'tom' : 'python',
'tim' : 'java',
'zhangsan' : 'c',
'lisi' : 'php',
'wangwu' : 'html',
}
print(language)

实战一

        当你想输出王五喜欢的课程,并且首字母要求大写时,你可以:

language = {
'tom' : 'python',
'tim' : 'java',
'zhangsan' : 'c',
'lisi' : 'php',
'wangwu' : 'html',
}
favorite = language['wangwu'].title()
print(favorite)
# Html

for循环 

        我们接下来结合前面两章所学,运用到字典上来,看例子:

language = {
'tom' : 'python',
'tim' : 'java',
'zhangsan' : 'c',
'lisi' : 'php',
'wangwu' : 'html',
}
for key,values in language.items():
print(f"KEY:{key} VALUES:{values}")
# KEY:tom VALUES:python
# KEY:tim VALUES:java
# KEY:zhangsan VALUES:c
# KEY:lisi VALUES:php
# KEY:wangwu VALUES:html

        这里我们用到了for循环,这里的意思是循环打印出language的键与值,我们自己定义的key和values一个代表键一个代表值,这两个小伙伴们想怎么定义就这么定义,但是定义变量的注意事项要记得哦,key是键,values是值,程序上的.items(),这是 一个方法,它会返回一个键值对列表,如果不加就会报错哦。

遍历key值

language = {
'tom' : 'python',
'tim' : 'java',
'zhangsan' : 'c',
'lisi' : 'php',
'wangwu' : 'html',
}
for key in language.keys():
print(f"KEY:{key}")

        遍历key值为什么用的是keys?key值是一种说法,字典是键与值一起的组合,所以这里取名为key值。keys是方法,用来取值的。

实战2

language = {
'tom': 'python',
'tim': 'java',
'zhangsan': 'c',
'lisi': 'php',
'wangwu': 'html',
}
friend = ['lisi', 'liehuang', 'wangwu']
# 用变量循环language字典中的键
for key in language.keys():
print(key.title())
# 判断key是否再friend列表中
if key in friend:
# 定义一个变量来接收存在的键
friends = language[key].title()
print(f"{key.title()}, I love {friends}")

遍历所有的值

language = {
'tom': 'python',
'tim': 'java',
'zhangsan': 'c',
'lisi': 'php',
'wangwu': 'php',
}
for value in language.values():
print(value)

        注意了,这里输出的结果是有重复的哦。怎么样去重呢?看下面

去重

        那么我们要去重又要输出值怎么办呢?我们可以用set方法

language = {
'tom': 'python',
'tim': 'java',
'zhangsan': 'c',
'lisi': 'php',
'wangwu': 'php',
}
for value in set(language.values()):
print(value)

列表字典

dictt = {'color': 'red', 'year': 1}
dictt1 = {'color': 'yellow', 'year': 2}
dictt2 = {'color': 'blue', 'year': 3}
all_dictt = [dictt, dictt1, dictt2]
print(all_dictt)
for all_dictts in all_dictt:
print(all_dictts)
# [{'color': 'red', 'year': 1}, {'color': 'yellow', 'year': 2}, {'color': 'blue', 'year': 3}]
# {'color': 'red', 'year': 1}
# {'color': 'yellow', 'year': 2}
# {'color': 'blue', 'year': 3}

        我们创建三个字典,再将字典放进一个列表中,再进行循环打印,并输出,也许小伙伴会觉得复杂,此处我们还是得学习的,后面的selenium以及appium亦或者接口自动化需要用到读取表格哦传输值哦。

实战三

        我们将上述dictt字典放入一个空的列表,并让这个字典连续打印十次

lists = []
# 循环十次
for list_2 in range(1, 11):
dictt = {'color': 'red', 'year': 1}
# 将字典添加到列表中
lists.append(dictt)
# 定义一个变量循环遍历列表
for list_3 in lists:
print(list_3)
print(f"一共创建了:{list_2}个字典")

        结果行数太多了就不写出来了,可以自己试试效果如何。

        也可以对其进行一定的修改,比如修改前三个的颜色:

lists = []
# 循环十次
for list_2 in range(1, 11):
dictt = {'color': 'red', 'year': 1}
# 将字典添加到列表中
lists.append(dictt)
# 使用一个新的循环去循环列表的前三个字典
for lists_1 in lists[:3]:
# 如果color等于red,则将color进行更改,year也可以进行更改
if lists_1['color'] == 'red':
lists_1['color'] = 'green'
lists_1['year'] = 2
# 定义一个变量循环遍历列表,显示前四个
for list_3 in lists[:4]:
print(list_3)
print(f"一共创建了:{list_2}个字典")

        如果你觉得为什么判定red不判定year就可以更改,因为他们再同一个字典中,不放心的小伙伴可以用if对year多进行一次判断哦。

        字典中可以储存列表,看下面的操作你就明白了:

pak = {
'dog': 'yellow',
'birds': ['red', 'blue'],
}
print(f"动物园里有:{pak['dog']}颜色的狗")
for paks in pak['birds']:
print("鸟的颜色有:\t" + paks + "的")

        这里我们在字典中加入了列表,'birds'的值为一个列表,我们想要输出对应的值,就必须使用for循环才能一一输出,看示例,我们定义一个变量循环遍历pak字典中'birds'键所对应的值,并打印这个变量,就能得到我们想要的值了。

实战四

pak = {
'dog': ['yellow', 'black'],
'birds': ['red', 'blue'],
'cat': ['white', 'orange'],
}
for animals,color in pak.items():
print(f"{animals}颜色都有:")
for color_num in color:
print(color_num.title())
# dog颜色都有:Yellow Black
# birds颜色都有:Red Blue
# cat颜色都有:White Orange

        这里我们使用了多个列表值,并用for循环进行遍历所有的颜色!你们输出的格式不是我注释的那个样子,这里我是修改了格式,所以不必纠结。

字典存储字典

number = {
'张三': {
'first_name': '张',
'last_name': '三',
'height': 180,
},
'李四': {
'first_name': '李',
'last_name': '四',
'height': 170,
},
}
for usename, usenames in number.items():
print(f"{usenames['first_name']}{usenames['last_name']}{usenames['height']}")
#第二种写法
number = {
'张三': {
'first_name': '张',
'last_name': '三',
'height': 180,
},
'李四': {
'first_name': '李',
'last_name': '四',
'height': 170,
},
}
for usename, usenames in number.items():
full_name = f"{usenames['first_name']}{usenames['last_name']}"
location = usenames['height']
print(f"{full_name}、身高:{location}")

        这两种写法最后的结果都是一样的,写法上稍微有一点点不同,可能第一种小伙伴更容易理解。

        第二种只是额外给了一个变量而已,而第一种方法直接调用了定义的变量指定内部字典纸进行输出。很多小伙伴肯定会问,外部字典键为什么不输出,要想输出,直接将usename加载print里面就好了,这里只是便于观看而已。

实战五

name_user = {}
# i = True
while True: # while i
# 提示输入名称
name = input("请输入课程:")
teacher = input("请输入老师名称:")
# 写入字典
name_user[name] = teacher
last = input("还有吗?y/n\t")
#进行输入判断,如果为no则结束循环
if last == 'no':
break
# i = False
# 用循环输出键与值
for names, value in name_user.items():
print(f"我得课程是{name},我的老师是{teacher}")

        这里可以自动填入键值对,所以还是值得大家好好看看的。这里是清安,不懂的可以加我或私聊。

版权声明
本文为[清安无别事]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_52040868/article/details/120910678

  1. python求带我脱离苦海,哎_
  2. Python 数据分析里面轴的问题
  3. python初学者,请问使用openpyxl库读取文件后出现图片中的报错要怎么解决?
  4. 大学毕业论文写有关python
  5. 授人以鱼吧友友python编写程序自动计算个人总分平均分各科最高最低平均分
  6. python怎么将四行代码换成一行啊
  7. 用Python如何编写啊 真不会啊?
  8. 这个布尔变化怎么做啊(Python
  9. PYTHON求集合交集需要用户手动输入集合名
  10. Python运行哈姆雷特词频统计时出错(如图),是哪方面的问题?
  11. 【Python表白代码合集】”我还是很喜欢你,像风走了八千里,不问归期”!!
  12. python实现学生信息管理系统(含代码)
  13. wxpython中如何按键停止死循环?
  14. python 类的问题?不懂这种方法的作用?不是继承那是什么作用?
  15. Python 题目不会写 求帮助!
  16. Python,turtle制图,要求使用for,while编写
  17. Python题目不会 求帮助! 谢谢您!
  18. Python题目不会!求帮助!
  19. Python这个看不太懂,,大神们帮个忙
  20. 安装拓展库pandas失败怎么解决
  21. python将字符串转成特定列表格式
  22. Python做一个保护手机号编程
  23. 用Spyder运行Python爬虫时仅输出“runfile(xx), wdir=xx”
  24. 使用Python对一组数据进行分段拟合,如何处理断点处的左右倒数相等
  25. Python输出符合条件的文件的路径名
  26. Python中pandas怎么实现分组去重统计和求和
  27. python xpath 爬虫,请帮帮我吧!
  28. python 用泰勒公式近似计算sinx的值 求解代码中哪里出现了错误
  29. Python语法2
  30. python如何将输出的各行数字对齐
  31. 使用 Python 进行数据可视化之Matplotlib
  32. python新鲜题 老公们 救救孩子
  33. 如何用python解答 要如何着手
  34. 请问Python正则表达式如何在多个文本中匹配出关键字
  35. Python 三天打鱼两天晒网问题
  36. mac安装python3
  37. 請問python要怎麼印数字倒等腰三角形
  38. 【算法学习】807. 保持城市天际线(java / c / c++ / python / go / rust)
  39. 【算法学习】237. 删除链表中的节点(java / c / c++ / python / go)
  40. 【算法学习】1512. 好数对的数目(java / c / c++ / python / go / rust)
  41. 【算法学习】1672. 最富有客户的资产总量(java / c / c++ / python / go / rust)
  42. 【算法学习】771. 宝石与石头(java / c / c++ / python / go / rust)
  43. 【算法学习】02.03. 删除中间节点(java / c / c++ / python / go)
  44. 【算法学习】1769. 移动所有球到每个盒子所需的最小操作数(java / c / c++ / python / go / rust)
  45. 【算法学习】1486. 数组异或操作(java / c / c++ / python / go / rust)
  46. 【算法学习】剑指 Offer 64. 求1+2+…+n(java / c / c++ / python / go / rust)
  47. 【算法学习】LCP 44. 开幕式焰火(java / c / c++ / python / go / rust)
  48. 【算法学习】剑指 Offer 58 - II. 左旋转字符串(java / c / c++ / python / go / rust)
  49. python的学校疑问难题求解
  50. 大学python题 作业题 基础题
  51. Python字典的知识,输出的样例为,最高分:89
  52. python写入文件失败且程序提前中止
  53. 用Python写一个学生字典,帮帮忙
  54. Python,能不能帮帮忙,真的不会
  55. [python] yield 和 readline() 的使用问题
  56. python安装找不到问题救救孩子
  57. python中循环结构完成数字游戏
  58. 如何用python实现多列vlookup(excle操作)
  59. python语言deLong‘s test:通过统计学的角度来比较两个ROC曲线、检验两个ROC曲线的差异是否具有统计显著性
  60. 安装LPC55S69 MicroPython模块是遇到的CDC Interface驱动问题