美文网首页
第三章 容器 ---->列表、元组、字典、set

第三章 容器 ---->列表、元组、字典、set

作者: 清茶也醉人Q | 来源:发表于2017-12-27 17:07 被阅读0次

    集合容器:列表 元组 列表和元组相互转换 字典 set

    列表:

    用一对方括号[]表示 列表中可以存储任何类型的数据

    一般情况下一个列表存放的数据类型 都一样 这样便于对列表的操作


    增:

    list.append(value) 在列表尾部添加元素

    value = list.insert(index) 根据索引向列表中插入元素

    list.extend(list1) 向list追加list1中所有的元素 也是两个列表相连接的意思


    删:

    list.remove(value) 移除列表中某个元素

    list.pop() 删除列表末尾元素

    list.pop(index) 根据索引删除元素

    del list[index] 根据索引删除元素


    查:

    value = list[index] 根据索引查找元素

    list.count(value) 统计列表中某个元素出现次数

    index = list[value] 根据值来查找对应的索引

    len(list) 列表长度

    max(list) 列表中元素最大值 仅限于列表中都是数字的情况

    min(list) 列表元素最小值


    改: list[index] = value

    切片: list[x:y:l] x:从索引几开始(包含) y:到索引几结束(不包含) l:每次切片的长度

    常见的几种情况

    list = [1,2,3,4,5,6,7,8,9,0]

    #从头切到位

    print(list[::]) #[1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

    print(list[1:5:2]) #[2, 4]

    print(list[0:5:2]) #[1, 3, 5]

    print(list[::-1]) #[0, 9, 8, 7, 6, 5, 4, 3, 2, 1]

    print(list[::-2]) #[0, 8, 6, 4, 2]

    print(list[-2:1:-2])#[9, 7, 5, 3]

    print(list[-2:1:2]) #[]若找不到则输出空列表

    print('*'*30)


    判断:

    in 在则输出Ture 否则返回False

    not in 不在则输出Ture 否则返回False


    反转:

    reserve()

    list.reverse() 对原列表倒叙排列

    list.sort() 按顺序排列

    '''

    #reverse = True 时倒序排列

    list1 = [1,2,3,4,5,69,0,7,8,]

    print(list1)

    list1.sort()# list.sort()=list.sort(reserve = False)

    print(list1)

    list1.sort(reverse = True)#false 默认正序 Ture 默认倒序

    print(list1)

    '''


    遍历: for in while enumerate

    '''

    list1 = [1,2,3,4,5,6,7,8,9,0]

    print('****************1、for 变量名 in list*******************')

    for a in list1:

     print(a)

    print('****************2、for index in range(list)*******************')

    for a in range(len(list1)):

    print('index-->%s,value-->%s'%(a,list1[a]))

    print('****************3、while index < len(list)*******************')

    a = 0

    while a < len(list1):

    print('index-->%s,value-->%s'%(a,list1[a]))

    a+=1

    print('****************4、for index,obj in enumerate(list)*******************')

    for a,obj in enumerate(list1):

    print('index-->%s,value-->%s'%(a,list1[a]))

    '''


    元组:

    tuple用一对小括号()表示

    元组和列表相似 但是元组是不可改变的

    有查询,判断的操作

    max(tup) min(tup) value = tup[index] len(tup) in not in

    删除的话是删除整个列表

    和列表一样也可以使用四种方法遍历

    列表和元组相互转换:

    list = list(tup)

    tup = tuple(list)

    '''

    list1 = [5,6,7]

    tup = tuple(list1)

    print(tup)

    tup = (1,2,3)

    list1=list(tup)

    print(list1)

    '''


    字典:

    用对花括号表示{key:value}

    字典里面元素都是键值对的形式存在 key必须是唯一的 value可以是任何类型


    增(改):

    map('key') = value 若字典中没有该键则添加 若有则更新此键对应的值


    删:

    map.pop(key) 根据键删除元素 并将此元素返回

    map.popitem() 随机删除一个键值对

    del map[key] 根据键删除元素

    map.clear() 清空字典


    查:

    value = map[key] 根据键查询值 若无此键报错

    value = map.get(key,[默认值]) 如果key不存在,可以返回None,或者自己指定的value

    len(map) 字典中键值对的个数

    str(map) 输出字典可打印的字符串表示

    map.keys() 输出所有键

    map.values() 输出所有值

    map.items() 输出所有键值对


    判断: in not in

    遍历:for循环遍历的三种方式

    '''

    map1 =  {'a':'a','b':'b','c':'c','d':'d'}

    for a in map1.keys():

    print('key-->%s,value-->%s'%(a,map1[a]))

    print('***********************************')

    for a in map1:

    print('key-->%s,value-->%s'%(a,map1[a]))

    print('***********************************')

    for k,v in map1.items():

    print('key-->%s,value-->%s'%(k,v))

    '''


    其他操作:

    map2 = map1.copy() 返回一个新的字典,内容一样,地址不同

    dict.update(dict2) 把字典dict2的键值对更新到dict里

    和list比较,dict有以下几个特点:

    查找速度极快,不会随着key的增加而变慢;

    需要占用大量的内存,内存浪费多。

    而list:

    查找和插入的时间随着元素的增加而增加;

    占用空间小,浪费内存很少。

    所以,dict是用空间来换取时间的一种方法。

    set:

    set = {值1,值2,.....值}

    set是无序的 元素不可重复的集合 可以用来过滤重复元素

    增:

    set.add(value) 向set中添加元素

    set.update(value) 将一个可迭代的内容,一一加入set中


    删:

    set.pop() 删除任意一个值

    set.discard(value) 删除指定元素 若无此元素也不报错

    set.remove(value) 删除指定元素 若无此元素报错

    set.clear() 清空set集合


    其他:

    | 并集

    & 交集

    intersection 交集函数 print(set.union(set1))

    - 差集

    difference 差集

    in 判断

    union 联合

    issubset 子集

    issuperset 父集


    多维:

    多维列表,元组

    就是列表里套列表 这里以列表为例子

    '''

    list1 = [[1,2],[1,2,3],[1,2,3,4,],[1,2,3,4,5]]


    #遍历此列表

    x = 0

    #外层循环遍历行

    while x < len(list1):

    y = 0

    #内层循环遍历列

    while y < len(list1[x]):

    print('x-->%s,y-->%s,xy-->%s'%(x,y,list1[x][y]))

    y+=1

    x+=1

    '''

    传递:

    可变类型:列表 字典 set

    两个变量引用同一个元素时 地址值是相同的,

    当一个变量值发生变化另一个变量值 也会发生变化

    不可变类型:int float str bool None 元组

    两个变量引用一个值时,地址值时相同的修改一个变量值,

    不会影响另外一个变量值

    '''

    #不可变类型

    a = 1

    b = a

    print(a)

    print(id(a))

    print(b)

    print(id(b))

    print('**********************')

    a = 2

    print(a)

    print(id(a))

    print(b)

    print(id(b))

    print('**********************')

    #可变类型

    set = {1,2,3,4,5,56}

    set1 = set

    print(set)

    print(id(set))

    print(set1)

    print(id(set1))

    print('**********************')

    set.pop()

    print(set)

    print(id(set))

    print(set1)

    print(id(set1))

    相关文章

      网友评论

          本文标题:第三章 容器 ---->列表、元组、字典、set

          本文链接:https://www.haomeiwen.com/subject/qhgugxtx.html