字典
-
字典是另一种可变容器模型
-
以键值对的形式存在 关键字不可变 不重复
-
可存储任意类型对象,即任意不可变数据(元组,数字,字符串)
-
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中
d = {key1 : value1, key2 : value2, key3 : value3 }
tinydict = {'name': 'runoob', 'likes': 123, 'url': 'www.runoob.com'}
tinydict1 = { 'abc': 456 }
tinydict2 = { 'abc': 123, 98.6: 37 }dict_1 = dict((["uname","zhang"],["age",18]))
print(dict_1)
{'uname': 'zhang', 'age': 18}
注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。
创建空字典
emptyDict = {} 使用大括号 {} 来创建空字典
print(emptyDict) 打印字典
print("Length:", len(emptyDict)) 查看字典的数量
print(type(emptyDict)) 查看类型
使用内建函数dict() 创建字典
emptyDict = dict()
访问字典里的值
把相应的键放入到方括号中,字典名[键名]
#!/usr/bin/python3
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
print ("tinydict['Name']: ", tinydict['Name'])
print ("tinydict['Age']: ", tinydict['Age'])
输出结果
tinydict['Name']: Runoob
tinydict['Age']: 7
修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
tinydict['Age'] = 8
tinydict['School'] = "南航金城"
删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。
显式删除一个字典用del命令
tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
del tinydict['Name'] # 删除键 'Name'
tinydict.clear() # 清空字典
del tinydict # 删除字典
字典键的特性
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
字典内置函数
- len(dict)------计算字典元素个数,即键的总数
- str(dict)------输出字典,可以打印的字符串表示
字典内置方法
dict.clear()------删除字典内所有元素
dict.copy()------返回一个字典的浅复制
dict.keys()------以列表的形式返回字典所有的键
key in dict------如果键在字典dict里返回true,否则返回false
dict.items()------以列表的形式返回字典所有的键值对
dict.values()------以列表的形式返回字典所有的值
dict.feomkeys()------创建一个新字典
dict.update(dict2)------把字典dict2的键/值对更新到dict里
popitem()------返回并删除字典中的最后一对键和值。
第一个参数用于作为字典的键,第二个参数用于作为字典的值
d1 = dict_01.fromkeys(("姓名","年龄"),("张三",21))
while循环
while 判断条件(condition):
执行语句(statements)......
while 循环使用 else 语句
如果 while 后面的条件语句为 false 时,则执行 else 的语句块
while <expr>:
<statement(s)>
else:
<additional_statement(s)>
for 语句
for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。
for循环的一般格式
for <variable> in <sequence>:
<statements>
else:
<statements>
整数范围值可以配合 range() 函数使用
for...else
for...else 语句用于在循环结束后执行一段代码。
for item in iterable:
# 循环主体
else:
# 循环结束后执行的代码
当循环执行完毕(即遍历完 iterable 中的所有元素)后,会执行 else 子句中的代码,如果在循环过程中遇到了 break 语句,则会中断循环,此时不会执行 else 子句。
range() 函数
如果需要遍历数字序列,可以使用内置 range() 函数。它会生成数列
>>>for i in range(5):
... print(i)
...
0
1
2
3
4
也可以使用 range() 指定区间的值
>>>for i in range(5,9) :
print(i)
5
6
7
8
>>>
range() 以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做'步长')
>>>for i in range(0, 10, 3) :
print(i)
0
3
6
9
>>>
或
>>>for i in range(-10, -100, -30) :
print(i)
-10
-40
-70
>>>
使用 range() 函数来创建一个列表
>>>list(range(5))
[0, 1, 2, 3, 4]
>>>
break 和 continue 语句及循环中的 else 子句
- break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。
- continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,提前开启下一次循环
while 中使用 break:
n = 5
while n > 0:
n -= 1
if n == 2:
break
print(n)
print('循环结束。')
输出结果:
4
3
循环结束。
while 中使用 continue:
n = 5
while n > 0:
n -= 1
if n == 2:
continue
print(n)
print('循环结束。')
输出结果:
4
3
1
0
循环结束。
快速注释 ctrl +/