Python第八天

一、元组tuple

1、元组不可以修改,其切片只能用来访问,而不能修改

2、生成只有一个元素的元组,一定要在数据后面加逗号,如(3,)

3、元组和整数、字符串一样可以作为字典的key,而列表不可以

4、生成器推导式:形式上生成器推导式是(),而列表生成器是[]

生成器推导式的结果是生成器对象,而不是列表、元组 使用的时候可以用tuple()、list()转化

5、使用生成器对象_ _next_ _()方法或者内置函数next()进行遍历

或者将其当作迭代器对象使用

6、当生成器对象所有元素都访问结束后,如需重新访问某个元素,必须重新构建该生成器对象

>>> g= (i*i for i in range(10))

>>> g

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()对象返回的是字典的值

你可能感兴趣的:(Python第八天)