美文网首页
day8-总结

day8-总结

作者: RurouniKenshin | 来源:发表于2018-07-23 10:36 被阅读134次

    关于列表(list)的其他操作

    1.修改列表元素:列表名[下标]=值

    list5 = [1,2,3,4]
    list5[2] = 5
    print(list5)
    

    获取列表长度:len(list5)

    print(len(list5))
    

    2.列表相加:列表1 + 列表2

    a = [1,2,3]
    b = [4,5,6]
    print(a+b)
    

    3.列表*n:让列表元素出现n次生成新的列表

    print(a*2)
    

    4.in not in操作

    元素 in 列表:判断指定的元素是否在指定的列表中

    res = 4 not in b
    print(res)
    

    5.获取列表中的最大值和最小值

    max(列表) min(列表)

    print(max([1,2,3,4]))
    print(min([1,2,3,4]))
    print(max(['a','b','c']))
    

    6.count:获取指定元素在列表中出现的次数

    print(a.count(-1))
    

    7.extend:列表1.extend(序列2):将序列2中的元素添加到列表1中

    c = [1,2,3,4]
    d = [1,6,9,7]
    c.extend(d[2:])
    print(c)
    

    8.列表.index(元素):获取指定元素在指定列表中的索引(如果元素有多个,取第一个)

    print(c.index(9))
    

    9.列表.reverse():反向列表元素(不产生新列表)

    c.reverse()
    print(c)
    

    10.列表.sort():队列表进行排序(默认升序,reverse=True 降序)

    c.sort()
    print(c)
    

    11.清空列表元素

    c.clear()
    print(c)
    

    12.复制列表:列表.copy()

    ll = [1,2,3,4,5,6,7,8]
    nn = ll.copy()
    nn.append('a')
    print(ll,nn)
    

    注意:通过一个列表变量给另一个列表赋值,赋值为地址,操作元素会相互影响
    要避免此类问题使用切片或者copy创建全新的列表

    元组(tuple)

    1.什么是元组

    元组就是不可变的列表,除了可变的操作以外,其他列表的操作都适用于元组
    元组值:a.使用()将元素包含起来,对个元素之间用逗号隔开 b.元素的类型可以是任何类型

    2.增删改操作不能作用于元组,可以查

    color = ('a','b','c','d')
    print(color[1])
    print(color[0:3])
    

    元组/列表的元素获取(特殊)

    names = ('sss','ttt')
    names1 = ['ssa','aas']
    x,y = names #通过多个变量分别获取元组的元素(变量个数和元组元素个数一致)
    m,n = names1
    print(m,n)
    print(x,y)
    names2 = (1,2,3,4,5,6)
    names3 = [1,2,3,4,5,6]
    q,w,*e,r = names2
    q1,w1,*e1,r1 = names3
    print(q,w,e,r)
    print(q1,w1,e1,r1)
    

    注意 *后接变量名,可以让变量获取多个元素以形成列表

    3.可以获取长度

    print(len(color))
    

    4.可以判断包含关系

    print('a' in color)
    

    5.+ 和 *

    print((1,'a')+(3,'b'))
    print((1,2)*3)
    

    字典(dict)

    1.什么是字典

    字典也是一种容器类型的数据类型(序列),存的数据是以键值对的形式出现的,字典中的元素全部都是键值对
    特点:字典可变且无序(课增删改,不可通过下标取值)

    键值对:键:值(key:value) 键值对中key是形式,值才是存储的内容

    • 键理论上可以是任何不可变的数据类型,但是实际开发一般使用字符串作为key
    • 值:可以是任意数据类型数据

    2.声明一个字典

    • 创建一个变量,通过赋值创建字典
    dict1 = {} #创建一个空的字典
    print(type(dict1))
    
    dict2 = {'a':1,'b':2,3:100,('a','b'):4}
    print(dict2)
    
    • 其他数据的类型转化
    dict2 = dict([(1,2),(2,3)])
    dict3 = dict([[1,2],[2,3]])
    dict4 = dict(([1,2],[2,3]))
    dict5 = dict(((1,2),(2,3)))
    print(dict2,dict3,dict4,dict5)
    

    注意:可以转化为字典的数据类型:set,list,tuple
    必须满足的转换条件:其中的元素必须是2元的数据容器类型

    3.字典的增删改查

    1.获取字典的元素的值:通过key来获取字典元素值
    • 字典[key]
    person = {'name':'king','age':18 }
    print(person['name'])
    # print(person['class']) 如果key不存在会报错
    
    • 字典.get(key)
    print(person.get('name'))
    # person(person.get('class')) 如果key不存在不会报错,返回none
    

    注意:如果key确实存在,使用[]语法获取值,不确定key是否存在才使用get方法去获取值

    2.增加/修改元素

    通过key获取字典元素然后赋值,当key本身存在的时候就修改元素的值,不存在就给字典添加键值对

    person['telephone'] = 125674677
    print(person)
    person['telephone'] = 111
    print(person)
    
    3.删除:删除以键值对为单位
    • del 字典[key]
      注意:key如果不存在会报错
    del person['telephone']
    print(person)
    # del person['aaa']
    
    • 字典.pop(key) 会返回被删除的键值对对应的值
    age = person.pop('age')
    print(person,age)
    

    4.相关数组属性

    • 字典.keys():获取字典所有的key,返回值类型是dict_keys,但是可以作为列表使用
    • 字典.values():获取字典所有的值(value)
    • 字典.items():将字典中所有的键值对转换为一个一个的2元组,其中key作为第一个元素,value作为第二个元素
    stu_dict = {'a':'aa','b':'bb','c':'cc'}
    keys = stu_dict.keys()
    print(keys,type(keys))
    # 遍历获取每个key
    for key in keys:
        print(key)
    
    print(stu_dict.values())
    print(stu_dict.items())
    

    遍历数组

    • a.直接遍历字典获取到的是所有的key(推荐使用)
    for key in stu_dict:
        print(key,stu_dict[key])
    
    • b.遍历这获取到key和value(不推荐使用)
    for key,value in stu_dict.items():
        print(key,value)
    
    字典应用实例:
    # 声明一个变量,作用是用来存储一个班级的学生信息。其中学生信息包括姓名,年龄,电话,至少存3个
    class1 = {
    'name':'python1805',
    'address':'19-1',
    'students':[{'name':'a','age':1,'sex':'m','phone':1111},
                {'name':'b','age':2,'sex':'f','phone':2222},
                {'name':'c','age':3,'sex':'m','phone':3333}]
    }
    

    5.字典的其他操作

    • dict.fromkeys(序列,value):创建一个新的字典,序列中的元素作为key,value作为值
    new_dict = dict.fromkeys('abc',100)
    print(new_dict)
    new_dict = dict.fromkeys(['abc','bcd'],100)
    print(new_dict)
    
    • in 操作
      key in 字典:判断字典中是否存在指定的key
    dog_dict = {'color':'white','age':3,'type':'柴犬'}
    print('color' in dog_dict)
    print('white' in dog_dict)
    
    • update 操作
      字典1.update(字典2):使用字典2的键值对去更新字典1中的键值对。
      如果字典2中对应的键值对在字典1中不存在就添加,存在就更新
    dict1 = {'a':1,'b':2,'c':3}
    dict1.update({'a':4,'d':5})
    print(dict1) # {'a': 4, 'b': 2, 'c': 3, 'd': 5}
    

    集合(set)

    集合(set)也是一种容器类型的数据类型(序列);数据放在{}中,多个之间只用逗号隔开:{1,2,'a'}
    集合是无序的(不能通过索引去取值),可变(可以增删改),元素不能重复

    1.怎么声明集合

    • 声明一个变量并赋值
    set1 = {1,2,3}
    print(type(set1))
    
    • 类型转换
    set2 = set('abc12333') 
    print(set2)
    #其他数据转换为集合,自带一个去重的功能
    set3 = set([12,'abc','hh',32,12])
    print(set3)
    print(list(set3))
    

    2.集合的增删改查

    • 查询集合的值:遍历
      注意:集合没有办法单独获取某一个元素(不能通过下标去获取)
    for it in set2:
        print(it)
    
    • 增加新的值到集合中:
      a.集合名.add(元素) 在指定的集合中添加指定的元素
    set_1 = {1,2,3}
    set_1.add(100)
    print(set_1)
    

    b.集合1.update(集合2) 将集合2中的元素添加到集合1中,自动去重

    set_1.update({'abc','ss'})
    print(set_1)
    
    • 删除集合中的元素
      a.集合名.remove(元素):在指定的集合中删除指定的元素
    set_1.remove('ss')
    print(set_1)
    

    b.集合名.pop():随机删除(一般不使用)

    set_1.pop()
    print(set_1)
    

    3.判断是否包含

    集合1 >= 集合2 -- 判断集合1是否包含集合2(所有的元素)

    print({1,2,3,4} >= {1,5}) # false
    print({1,2,3,4} <= {1,2}) # false
    

    4.数学的集合运算

    • 求并集: |
    print({1,2,3} | {2,3,4,5})
    
    • 求交集:&
    print({1,2,3} & {2,3,4,5})
    
    • 求差集:-
    print({1,2,3} - {2,3,4,5})
    
    • 求补集:^
    print({1,2,3} ^ {2,3,4,5})
    

    5.其他方法

    • clear:清空集合
      set_2 = {3,4,5}
      set_2.clear()
      print(set_2)
    • len:获取元素个数
      print(len(set_2))

    相关文章

      网友评论

          本文标题:day8-总结

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