第四章 字典
1.组成
字典由键和对应的值组成,键-值称为项。
2.表示
花括号,键与值之间用冒号,项之间用逗号
phonebook = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
3.dict
可以使键-值对序列变为字典
items=[('name','mike'),('age',42)]
d=dict(items)
print(d)
print(d['age'])
4.字典方法
- clear 删除所有项
- copy 浅复制 函数deepcopy深复制
- fromkeys 创建一个新字典,包含指定的键,且每个键对应的值都是None
- get
d.get('name', 'N/A')
- items 方法items返回一个包含所有字典项的列表,其中每个元素都为(key, value)的形式
- pop 方法pop可用于获取与指定键相关联的值,并将该键值对从字典中删除。
- popitem 随机弹出一个字典项(字典无序)
- setdefault 类似get,且能在字典不存在的值设定值
- update 用一个字典中的项更新另一个字典
第五章
1.打印多个参数,使用逗号分隔
print(‘age’,42)
打印出的结果,各参数之间包含一个空白字符
2.赋值
序列解包:
同时给多个变量赋值。x,y,z=1,2,3
可用于交换多个变量的值x,y=y,x
链式赋值:
x=y=3
增强赋值:如+=
3.在Python中,使用冒号(:)指出 接下来是一个代码块,并将该代码块中的每行代码都缩进相同的程度
4.条件语句
在布尔表达式中,这些值都会被解释器视为假:
False None 0 “” () [] {}
elif 是else if的缩写
is 相同运算符 判断是否是同一个对象
if 条件:
执行语句1
elif 条件:
执行语句2
else:
执行语句3
5.循环
- while循环
while 条件:
执行语句
- for循环
序列迭代
范围内置函数range,如range(1,5)
numbers=[0,1,2,3,4,5,6,7,8,9]
for number in numbers:#注意有冒号
print(number)
迭代字典
d={'x':1,"y":2,"z":3}
for key in d:
print(key,d[key])
d={'x':1,"y":2,"z":3}
for key,values in d.items():
print(key,values)
6.迭代工具
- 并行迭代 函数zip 将两个序列缝合起来,返回一个由元组组成的序列(可以用list再转为列表)
- 迭代时获取索引 函数enumerate:用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
seq=['one','two','three']
for j,element2 in enumerate(seq):
print(j,element2)
- 反向迭代和排序后再迭代:reversed,sorted。用户任何序列或可迭代的对象,且不就地修改对象,返回反转和排序后的版本。
sorted返回一个列表
reversed返回一个可迭代对象(能在for循环等处使用)
data=[4,3,15,2,3,9]
print(sorted(data))
data2="hello,world"
print(list(reversed(data2)))
7.跳出循环
break continue
8.简单推导
我理解为后者是前面x*x,(x,y)的约束条件
print([x*x for x in range(10)])
print([x*x for x in range(10) if x%3==0])
print([(x,y)for x in range(3) for y in range(3)])
男女孩匹配
girls=['alice','bernice','clarice']
boys=['chris','arnold','bob']
letterGirls={}#创建字典
for girl in girls:
letterGirls.setdefault(girl[0],[]).append(girl)#每项的键为一个字母,值为以这个字母打头的女孩名字组成的列表
print([b+'+'+g for b in boys for g in letterGirls[b[0]]])#列表推导,遍历所有男孩,查找名字首字母与当前男孩相同的所有女孩
10.其他语句
- pass 什么也不做
- del语句 删除
- exec和eval
exec将字符串作为代码执行
exec(‘sqrt=1’,scope)
scope为字典,作为代码字符串的命名空间
eval计算用字符串表示的Python表达式的值
print(eval(input("Enter an arithmetic expression:")))