字符串格式化:求模操作符%可以用来将其他值转换为包含转换标志的字符串,对值进行不同方法的格式化,左右对齐,字段宽度精度,增加符号,左填充数字
字符串方法join split istitle capitalize
将值分组到一个结构,并且通过编号对其进行引用
通过名字 引用值 数据结构
数据类型--映射mapping
字典Dictionary是python中唯一内建映射类型
字典中值并没有特殊的顺序,但是值都存储在一个特定的建Key
键可以是数字,字符串 ()元组
字典进行构造,轻松查到某个特定的词语-键,从而找到它的定义-值
表征游戏棋盘状态,每个键都是由坐标值构成的元组
存储文件修改次数,用文件名作为键
找到索引号
list.index()
为何不用字符串而不用整数表示电话号码?
电话号码(以及其他可能以0开头的数字)应该表示为数字字符串,而不是整数
创建和使用字典
字典由多个键及与其对应的值构成的对组成
键值对 称为项
名字是键,电话号码是值
每个键和它的值之间用冒号(:)隔开
键值对项用,隔开
整个字典是由一对大花括号括起来
空字典{}
字典创建的方法
键值对 = 项
phonebook = {‘Alice‘:‘2341‘,‘Beth‘,‘Cecil‘:‘3258‘}
dict
items = [(‘name‘,‘Gumby‘),(‘age‘,‘42‘)]
d = dict(items)
d = dict(name=‘qinrui‘,age=‘42‘)
字典的基本行为在很多方面与序列sequence
len(d) 返回字典中键值对项的数量
d[k] 返回关联到键上的Value
d[k] = v将值关联到键
del d[k] 删除指定键 对应的项
key in dictionary 检查判断d中是否含有键为k的项
键类型:字典的键不一定为整型数据,也有可能是其他不可变类型,浮点实数字符串元组
自动添加:即使那个键在字典中不存在,也可以为它分配一个值,这样字典就会建立新的项
不使用append方法或其他类型操作的情况下 不能将值关联到列表范围之外的索引
成员资格:表达式k in d 查找的是键,而不是值
v in l list
用来查找值,而不是索引字典含有指定的键,查找相应的值就很容易
字比典中检查键的成员
键可以为任何不可变类型-是字典最强大
list assignment index out ofo range
将字符串‘Foobar‘关联到一个空列表 位置根本不存在
用[None]*43初始化将‘Foobar‘关联到空字典的键42上
新的项已经添加到字典
使用人名作为键的字典,每个人用另一个 其键phone addr分别表示他们的电话号码地址
在每个convert说明符conversion specifier中的%字符后面 可以加上键 用圆括号括起来 后面跟上其他说明元素
字典的格式化字符串
如何使用字典而不是元组来完成 在每个转换说明符conversion specifier中的%字符后面,可以加上键 % 后面加上键用圆括号 括起来 在后面跟上其他格式类型说明符号
字典字符串格式化
%(字典的键)s s 是格式化的类型说明符号
clear 清除字典中所有的项remo字典不受影响,但是如果修改了某个值
在副本中替换值的时候,原先
原地修改,而不是替换,原先的字典也会改变,因为同样的值也存储在原先的字典中
shallow copy deep copy
copy模块的deepcopy函数完成
字典的 键是普通的字符串 值是列表类型
d[‘names‘] 返回的是一个列表 ,列表可以使用append()
fromkeys使用给定的键建立新的字典,每个键默认对应的值为None
dict.fromkeys([‘name‘,‘age‘])
如果不想使用None作为默认值,也可以自己提供默认值
get更宽松的会出访问字典项的方法,如果试图访问字典中不存在的项
dict.get(‘key‘)访问一个不存在的键 没有任何异常,而得到None,还可以自定义"默认"值,替换None
items方法将所有的字典项以列表方式返回,列表项中的每一项都来自于-键值,项在返回时并没有特殊的顺序
keys和iterkeys
keys方法将字典中的键以列表形式返回,而iterkeys则返回针对键的iter
pop方法用来获得对应用给定键的值,然后将这个键-值对从字典中移除
popitem方法类似于list.pop 后者会弹出列表的最后一个元素,不同的是 popitem弹出随机的项,因为字典中并没有最后的元素或者其他有关顺序的概念,若想一个接一个地移除并处理项,这个方法就非常有效,因为不用首先获取键的列表
d.pop(‘key‘) 删除指定键的值
d.popitem() 随机取删除键值对
字典是无序的append
setefault方法在某种程度上类似于get方法,就是能够获得与给定键相关联的值,除此之外
获取与给定键相关联的值
setdefault还能在字典中不含有给定键的情况下设定相应的键值对
当键不存在的时候,setdefault返回默认值并且相应地更新字典
如果键存在,那么就返回与其对应的值,但不改变字典,默认值是可选的
setdefault方法在某种程度上类似于get,就是能够获得与给定键相关联的值,setdefault还能在字典中不含有给定键的情况下设定相应的键值对
update方法可以利用一个字典项更新另外一个字典
values和itervalues
values方法以列表形式返回字典中的值(itervalues返回值的迭代器)
映射可以使用任何不可变对象标识元素,最常见的类型是字符串和元组
利用字典格式化字符串:通过在格式化说明符中包括名称-键来对字典应用字符串格式化操作
当在字符串格式化中使用元组,还需要对元组
深入 自以为已经掌握的知识,还隐藏着惊讶的特性
logging mode 记录日志
使用逗号输出
print打印表达式,不管是字符串还是其他类型进行自动转换后的字符串,但是事实上打印多个表达式也是可行的,只有将他们用逗号隔开就好
每个参数之间都
print 语句 还是函数
print参数并不能像我们预期那样构成一个元组
想同时输出文本和变量值,却又不希望使用字符串格式化
结果中怎么带逗号
import somemodule
from somemodule import somefunction
from somemodule import somefunction.anotherfunction.yetanotherfunction
from somemodule import somefunction,anotherfunction,yetanotherfunction
from somemodule import *
只有确定自己想要从给定的模块所有功能,才应该使用最后一个版本,但是如果两个模块都有open函数
module1.open()
module2.open()
但还有另外的选择,可以在语句末尾增加一个As子句,或为整个模块提供别名
可以为导入的模块,函数 设置别名
from module1 import open as open1
from module2 import open as open2
赋值魔法
序列解包
赋值语句的列子已经给过 对变量和数据结构成员,列表中的位置和分片以及字典中的槽赋值
sequence unpacking 序列解包可迭代解包 ,将多个值的序列解开,然后放到序列
当函数或者方法返回元组(或者其他序列或可迭代对象),假设需要获取(删除)字典中任意键值对,可以使用popitem,方法将键值对作为元组返回
popitem返回的 元组可以直接赋值到两个变量中