文章目录

  • 学习教材
  • 第六章 字典
    • 1、字典的简单操作
    • 2、遍历字典
    • 3、输出时排序和去重
    • 4、嵌套

学习教材

第六章 字典

1、字典的简单操作

#定义一个字典
cars={'color':'red','price':200000}
print(cars)
#访问字典中的值
print(cars['color'])
print(cars['price'])
#为字典添加键值对
cars['owner']='sushan'
print(cars)
print(cars['owner'])
#删除键值对
del cars['owner']
print(cars)

输出结果:
{‘color’: ‘red’, ‘price’: 200000}
red
200000
{‘color’: ‘red’, ‘price’: 200000, ‘owner’: ‘sushan’}
sushan
{‘color’: ‘red’, ‘price’: 200000}

2、遍历字典

鉴于字典可能包含大量的数据,Python支持对字典遍历。字典可用于以各种方式存储信息
因此有多种遍历字典的方式:可遍历字典的所有键—值对、键或值。
遍历所有的键值对 items()
方法items()返回一个键—值对列表。用for循环依次将每个键—值对存储到指定的两个变量中

code={'first':'c','second':'c++','third':'c#',
}
#可声明两个变量,用于存储键—值对中的键和值
for key,value in code.items():print('key:'+key)print('value:'+value)

输出结果:
key:first
value:c
key:second
value:c++
key:third
value:c#

注意:即便遍历字典时,键—值对的返回顺序也与存储顺序不同。Python不关心键—值对的存储顺序,而只跟踪键和值之间的关联关系。

遍历字典中的所有键 keys()
keys()返回的字典中所有的键

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}
for name in favorite_languages.keys():print(name)

输出结果:
jen
sarah
edward
phil

也可以不使用keys方法,直接遍历字典,默认遍历的就是所有的键

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}
for name in favorite_languages:print(name)

输出结果同上,不变

应用:调查一些人,用一个字典存储每个人最爱的编程语言,然后再用一个列遍存储你的朋友,对于受调查的人中,若有你的朋友,就打印一句话“Hi,xxx. I see your favorite language is xxx”
这个问题有两种写法:
1、遍历所有的键,若遇到你朋友,就打印
2、遍历所有的朋友,若遇到在字典的键中的朋友,就打印

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}
my_friends=['phil','juil']
#遍历所有键
for name in favorite_languages:if name in my_friends:print(  'Hi,'+name+'. I see your favorite language is '+favorite_languages[name].title())

输出结果:
Hi,phil. I see your favorite language is Python

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}
my_friends=['phil','juil']
#遍历朋友 看是否在字典里
for name in my_friends:if name in favorite_languages.keys():print(  'Hi,'+name+'. I see your favorite language is '+favorite_languages[name].title())

两种方法都能完成题目要求。

遍历字典中的所有值 values()
方法values(),它返回一个值列表,而不包含任何键。用法与keys()相同

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}
for name in sorted(favorite_languages.values()):print(name.title())

3、输出时排序和去重

排序
字典总是明确地记录键和值之间的关联关系,但获取字典的元素时,获取顺序是不可预测的。这不是问题,因为通常你想要的只是获取与键相关联的正确的值。要以特定的顺序返回元素,一种办法是在for循环中对返回的键进行排序。为此,可使用函数sorted()来获得按特定顺序排列的键列表的副本:
注意:这里使用的是sorted(),前面我们学过,sorted()只是临时排序,不改变原有顺序

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}
for name in sorted(favorite_languages.keys()):print(name.title())

输出结果:
Edward
Jen
Phil
Sarah

去重
前面介绍的遍历方法,都没有去除重复的元素
通过对包含重复元素的列表我们可以调用set(),Python会找出列表中独一无二的元素,并使用这些元素来创建一个集合

favorite_languages = {'jen': 'python','sarah': 'c','edward': 'ruby','phil': 'python',}
for name in set(favorite_languages.values()):print(name.title())

输出结果:
Python
C
Ruby

4、嵌套

有时候,需要将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套。你可以在列表中嵌套字典、在字典中嵌套列表甚至在字典中嵌套字典。
在列表中存储字典

car1={'color':'red','price':'500'}
car2={'color':'blue','price':'1000'}
car3={'color':'black','price':'1100'}
#创建一个列表 将三个字典都放进去
cars=[car1,car2,car3]
for num in cars:print(num)

输出结果:
{‘color’: ‘red’, ‘price’: ‘500’}
{‘color’: ‘blue’, ‘price’: ‘1000’}
{‘color’: ‘black’, ‘price’: ‘1100’}

为列遍添加十个汽车,输出前五个

cars=[] #空列表
for num in range(1,11):car={'color':'red','price':'500'}cars.append(car)#输出前五个
for num in range(0,5):print(cars[num])print('...')

输出结果:
{‘color’: ‘red’, ‘price’: ‘500’}
{‘color’: ‘red’, ‘price’: ‘500’}
{‘color’: ‘red’, ‘price’: ‘500’}
{‘color’: ‘red’, ‘price’: ‘500’}
{‘color’: ‘red’, ‘price’: ‘500’}

在字典中存储列表
一个人可能喜欢多个语言,打印每个人喜欢的语言,注意喜欢一个语言和喜欢多个的打印的话不一样哦

#字典里面存列表
a = {'jen': ['python', 'ruby'],'sarah': ['c'],'edward': ['ruby', 'go'],'phil': ['python', 'haskell'],}
for name,language in a.items():if len(language)>1:print(name.title()+"'s favorite languages are: ")for num in language:print(num)else:print(name.title()+"'s favorite language is: "+language[0])

在字典中存字典
一个字典用来存储所有用户的信息,里面每个用户的信息都是一个字典,要求打印所有用户信息

users={'sushan':{'num':'001','password':'123',},'sarah':{'num':'002','password':'123',},'juil':{'num':'003','password':'123',},
}
for name,info in users.items():print(name.title()+':')for one,two in info.items():print(one+'='+two)

输出结果;
Sushan:
num=001
password=123
Sarah:
num=002
password=123
Juil:
num=003
password=123

python学习(二)----字典相关推荐

  1. Python学习.第六天.字典

    Python学习.第六天.字典 前言 一.什么是字典? 二.字典的原理 三.字典的创建与删除 四.字典的查询操作 五.字典元素的增.删.改操作 1.key的判断: 2.字典元素的删除 3.字典元素的新 ...

  2. Python学习(五)字典

    字典 1.一个简单的字典 现在想存储一个人的基本信息,比如姓名,年龄等信息,应该怎样存储呢?下面是一个简单的字典,存储了一个人的相关信息. people_0 = {"name": ...

  3. SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理

    SIGIA_4P python学习 列表 字典 集合 面对对象编程 闭包 装饰器 函数式编程 作用域 异常处理 本文连接 简介 SIGIA_4P 网址 a. 课程OKR Objectives and ...

  4. python学习(二) ElementTree解析、读写、创建xml文件

    python学习(二) 读写xml文件 1.xml格式 将其存储为sample.xml  Tag:使用<>包围的部分  Element:被Tag包围的部分,例如22中的22  Attrib ...

  5. Python学习二:词典基础详解

    作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...

  6. Python学习:字典(dictionary)

    Python学习:字典(dictionary) 异常处理小技巧 异常 ​ 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行.一般情况下,在Python无法正常处理程序时就会发生一个 ...

  7. python学习(字典、用户输入和while循环)

    前言:上次学习到了if语句,这次接着进行学习. 字典 字典能够准确地为各种真实物体建模,且能够将相关信息关联起来. 使用字典 字典是一系列的键--值对,一个建对应一个值,值可以为数字.字符串等 在Py ...

  8. Python学习6 字典基础知识和常用函数

    字典概念 字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据.为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 ...

  9. python学习—伍—字典

    目录 零.字典基础 简单字典举例 字典是什么 访问字典中的值 添加键值对 创建空字典 修改字典中的值 删除键值对 由类似对象组成的字典 使用 get() 来访问值 壹.遍历字典 遍历所有键值对 遍历字 ...

  10. python学习——二维码生成和识别

    二维码知识 在介绍二维码原理之前,先说下条形码 .条形码我们都见过,就是超市收银员结账的时候扫的那个东西.它是一种"一维码",竖直方向,条码是均匀的,信息只能在水平方向上存储,并且 ...

最新文章

  1. 为什么 IPv6 难以取代 IPv4
  2. 网络营销十技之六:联署计划营销
  3. Hadoop集群datanode磁盘不均衡的解决方案
  4. 致毕业生:那些年我们错过的“BAT”
  5. [BZOJ] 1025 [SCOI2009]游戏
  6. 【Siddhi】Siddhi实时计算核心流程分析
  7. spring 数据库 链接db2_实例讲解使用Spring通过JPA连接到Db2
  8. Teamcenter 开发中的一些问题
  9. (四)pscc学习笔记
  10. python生成序列_python如何生成随机序列?
  11. OpenFOAM大涡模拟湍流模型之Smagorinsky模型代码详解
  12. 彭启宗的dsp技术学习笔记
  13. 合同法律风险管理 被骗者刑事风险
  14. 神器啊!轻松用 Python 写个 APP!
  15. 初出茅庐——利用Python的Turtle库绘制玫瑰花
  16. vivado使用笔记(1)--防止信号被综合优化dont touch
  17. ubuntu服务器安装可视化桌面(Gnome)
  18. 网络通过mac定位机器_如何设置Mac以充当网络时间机器驱动器
  19. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,求该数
  20. 绕圈圈(python)

热门文章

  1. 2_C语言中的数据类型 (一)2.1.常量和字符串常量
  2. MySQL5.7多实例自动化部署脚本
  3. Hadoop核心组件
  4. [ZZ]为什么传统的自动化测试工具会扼杀敏捷?
  5. IntelliJ IDEA 中 右键新建时,选项没有Java class
  6. 关于web.xml 中的 welcome-file-list 的认识
  7. linux逻辑卷管理(LVM)
  8. python之Linux基础(三)
  9. Service Mesh简介
  10. 6.1-数据结构算法-堆栈与队列