可迭代对象:能够进行迭代逐一返回其成员项的对象成为可迭代对象。
可迭代对象的例子包括
- 所有序列类型:如 list 、str和tuple
- 非序列类型:dict、set、文件对象
- 实现了__iter__()方法的任意对象(可迭代协议)
- 实现了序列语义的__getitem__()方法的任意对象
【注!实现了__getitem__()方法的被称为可迭代对象(支持迭代操作),但不是Iterable类型】
一、列表
li = [1, 12, 9, "nnasidjoas"]
列表的基本格式:使用中括号括起来,用,(逗号)分割元素
列表中的元素可以是任意类型,有序
可以使用索引、切片来取值【切片的结果也是列表】
列表中的元素可以被修改、删除,所以不需要重新创建变量来承接
支持in、not in操作【列表中每个元素作为一个整体,子列表中的元素或者元素子串判断不了】
可迭代类型可以使用list()转换为列表
a = "ashdoiagsofiahjg"
b = list(b)
list列表类定义的方法
-append():追加
-clear():清空列表
-copy():浅拷贝
-count(value):计算元素value出现的次数
-extend(iterable):把可迭代对象依次追加到列表中
-index(value,start=None,stop=None):从左到右寻找值value出现的位置
-insert(index, p_object):在指定索引位置插入元素
-pop(index=None):默认把列表最后一个元素删除,并可以获得该值
-remove(value):从左到右删除列表中的指定值value
-sort(cmp, key, reverse=False):排序,默认从小到大
二、元组
tuple元组类型可以视作列表的二次加工,其中一级元素不可被修改,不能被增加或者删除
创建元组的时候在末尾添加一个逗号,以作区分
可以使用索引和切片进行取值
可迭代类型,有序
元组的基本格式:使用()括起来,逗号,进行分割
tuple元组类定义的方法
-count(value):获取指定值出现的次数
-index(value, start=None, stop=None):从左到右获取指定值的索引
三、字典
info = {"k1":"v1", "k2":"v2"} #键值对
字典的基本格式:使用大括号{}括起来,逗号,进行分割,元素以键值对类型存在,无序
dict字典类的Value可以是任意类型,而Key只能是可hash类型
不可hash类型:列表,字典
布尔值可以作为Key,但会和0,1(True=1, False=0)进行冲突
获取dict字典内的值
-v = info["k1"] #通过key来获取
del:同样通过索引来进行删除
info.keys():获取字典所有的Key
info.values():获取字典所有的Value
info.items():获取字典所有的键值对
dict字典类定义的方法:
-clear():清空
-copy():浅拷贝
-fromkeys():根据序列,创建字典,并指定统一值
-get():通过Key获取值,不存在时可以指定默认值返回
-items()、keys()、values()
-pop():可以删除指定Key的键值对,并获得对应的value,不存在时可以指定默认值返回
-popitem():随机删除,获得元组类型的键值对
-setdefalut():设置值,如果存在则只进行返回当前Key对应值操作,如果不存在则创建新的键值对,并返回当前Key对应值
-update():存在则覆盖,不存在则添加。传值可以使用字典类型,也可以使用赋值类型
info.update({'k1':'2314', 'k3':'1646'})
info.update(k1=1234515, k3=2151, k5='asfaf')