Python第八天
一、元组tuple
1、元组不可以修改,其切片只能用来访问,而不能修改
2、生成只有一个元素的元组,一定要在数据后面加逗号,如(3,)
3、元组和整数、字符串一样可以作为字典的key,而列表不可以
4、生成器推导式:形式上生成器推导式是(),而列表生成器是[]
生成器推导式的结果是生成器对象,而不是列表、元组,使用的时候可以用tuple()、list()转化
5、使用生成器对象_ _next_ _()方法或者内置函数next()进行遍历
或者将其当作迭代器对象使用
6、当生成器对象所有元素都访问结束后,如需重新访问某个元素,必须重新构建该生成器对象
>>> g= (i*i for i in range(10))
>>> g
<generator object <genexpr> at 0x036AE630>
>>> g.__next__()
0
>>> g.__next__()
1
>>> next(g)
4
>>> next(g)
9
二、字典
1、无序可变序列,其键和值表示一种映射或对应关系
2、 其键和值用冒号分开,不同元素之间用逗号分隔
3、字典的键可以是任意不可变数据,字典的键不可以重复
4、可以使用zip()来构建一个元组的列表,再使用dict转化成字典
>>> keys=['a','b','c','d']
>>> values=[1,2,4,8]
>>> zp=dict(zip(keys,values))
>>> zp
{'a': 1, 'b': 2, 'c': 4, 'd': 8}
5、或者直接使用dict()根据“键:值”来创建字典
!!!此时键无需加引号,默认str
>>> d=dict(name="zzz",age=16)
>>> d
{'name': 'zzz', 'age': 16}
6、my_dict['key']=a //即可以作为修改元素值(优先),又可用作添加新元素
7、update()将参数键值一次性添加到字典对象中
adict=update(bdict)
若存在相同的键,则使用bdict的值
8、删除字典元素,adict.pop("key")
9、clear()清除字典所有元素
copy()返回字典的浅拷贝
10、访问字典对象时,若不存在键,则返回异常
两种解决方案
第一种:
>>> d=dict(name="zzz",age=16)
>>> d
{'name': 'zzz', 'age': 16}
>>> if 'name' in d: //判断键是不是在字典
print(d['name'])
else:
print("No Exist")
第二种:
>>> try:
print(d['address'])
except:
print("No Exist")
11、查找更加简单的是:
dict.get("age",'NOT EXIST')方法 假如找不到,就返回第二个参数
dict.setdefault("key","value") 假如找不到,就将键和值插入,并返回
12、当对字典进行迭代时,默认是遍历的键
字典的items()对象返回的是字典的元素,即键值对
字典的keys()对象返回的是字典的键
字典的values()对象返回的是字典的值