Day 6 if及字典
- if
- "=="运算符用于检测表达式两端是否相等;
- "!="运算符用于检测表达式两端是否不相等;
- <, <=, >, >=;
- 检查是否相等时区分大小写;
- if else;
- if elif else;
- 字典
- 花括号括起来的“键 : 值”的组合,例如:
这里定义了一个外星人字典,包括两个键:color和points,值分别是green和5;alien_0 = {'clolor' : 'green' , 'points' : 5}
- 与键相关的值可以是数字、字符串、列表甚至是字典,可以将任何Python对象用作字典的值;
- 取值:字典名 + 放在方括号内的键
- 赋值:
alien_0['color'] = 'ren' alien_0['points'] = 10 + alien_0['points']
-
动态结构
- 添加:直接通过 ‘ 字典名 + 放在放在方括号内的键 = 值 ’ 即可,还是用外星人字典为例,添加位置键值的代码如下:
alien_0['x_position'] = 0 alien_0['y_position'] = 25
- 删除:del + 字典名+放在方括号内的键:
del alien_0['x_position']
-
遍历
首先定义一个字典favorite_languages = { 'jen':'python', 'sarah':'c', 'edward':'rub', 'phil':'python' }
- itmes() 方法,返回键-值组合;
for name, language in favorite_languages.items(): print (name.title() +"'s favorite language is " + language.title() + ".")
如果上述语句改为:
for name in favorite_languages.items(): print (name)
想想输出值是什么?最初我的答案是输出所有的名字,实际运行结果是:
- keys() 方法,遍历字典中的所有键,keys() 方法返回一个包含字典中所有键名称的列表;
- values() 方法,用于遍历字典中的所有值,values() 方法返回一个包含字典中所有值的列表;
- set() 函数,返回一个集合,集合中的每个元素都是独一无二的,也就是说剔除重复项;
思考下面两段代码,我最初认为输出结果应该是一样的,都应该是剔除了重复项的语言名称:
for name in set(favorite_languages.values()): print (name)
for name in favorite_languages.values(): print set((name))
结果呢,第一段代码的输出:
下面是第二段代码的输出:
-
Tips
我的理解:字典相当于数据库表里面的一行数据,键就是数据库表的字段,值就是字段值。 -
嵌套
- 字典嵌套,可以是在列表中存储字典、在字典中存储列表
- 在列表中存储字典:字典变量作为列表值的列表,我的理解是,如果作为列表分量存在的各字典都是一样的结构的话,在列表中存储字典就构成了关系型数据库的表;
- 在字典中存储列表:字典的某一个键的值是列表,我的理解类似于关系型数据库中通过关键字链接的两个或多个表的概念,其中,字典是主表,而作为值存在的列表是存储标准分类的字表;
- 在字典中嵌入字典;
- 字典嵌套,可以是在列表中存储字典、在字典中存储列表