zoukankan      html  css  js  c++  java
  • 数据类型及内置方法二

    一.元组(tuple ,存多个值,有序,不可变)

    与列表类似可以存多个值,但是不同的是元组本身不能被修改

    基本使用:tuple

    1.用途:记录多个值,当多个之没有改的需求,此时用元组

    2. 定义方式:在()内用逗号分割开多个任意类型的值

    t=(1,1.3,'xx',('a','b'),[1,2]) #t=tuple((1,1.3,'xx',('a','b'),[1,2]))
    print(t,type(t))
    t1=tuple('hello')
    print(t1)

    3.常用操作+内置方法

    1、按索引取值(正向取+反向取):只能取

    t=('egon',123,['a','b'])
    print(id(t[0]))
    print(id(t[1]))
    print(id(t[2]))
    
    t[2][0]='A'
    print('='*50)
    print(id(t[0]))
    print(id(t[1]))
    print(id(t[2]))
    t[0]='EGON'
    
    t[2]='xxxx'
    t[2][0]='A'
    print(t)

    2.切片(顾头不顾尾,步长)

    t=(1,2,3,4,5)
    print(t[0:3])
    print(t)

    3、长度

    len()

    4.成员运算(in ,not in)

    5.循环

    for item in ('a','b','c'):
        print(item)

    需要了解的操作

    t=('a','b','c','a')
    print(t.count('a'))
    print(t.index('a',1,10))
    print(t.index('xxx',1,10))

    二.字典(dict 存多个值,无序,可变)

    基本使用dict

    1.用途:记录多个值,每一个值都对应的key用来描述value的作用

    2.定义方式:在{}内用逗号分隔开多 个key:value,其中value可以是任意类型,而key必须是不可变的类型,通常情况下应该str类型

    dic={0:'aaa',1:'bbb',2:'cccc'}  # dic=dict({0:'aaa',1:'bbb',2:'cccc'})
    print(dic,type(dic))
    print(dic[0])
    
    dic={[1,2]:'aaa'}
    dic={(1,2):'aaa'}
    print(dic[(1,2)])

    字典的两种用法

    # 用法一:
    dic=dict(x=1,y=2,z=3)
    print(dic)
    
    # 用法二:
    userinfo=[
        ['name','egon'],
        ['age',18],
        ['sex','male']
    ]
    d={}
    for k,v in userinfo:  # k,v=['name', 'egon']
        # print(k,v)
        d[k]=v
    print(d)
    
    # d=dict(userinfo)
    # print(d)

    3.常用操作+内置方法

    1、按key存取值:可存可取

    dic={'name':'egon'}
    print(dic['name'])
    dic['name']='EGON'
    print(dic)
    dic['age']=18
    print(dic)

    2、长度len

    dic={'name':'egon','age':18,'name':'EGON','name':'XXXX'}
    print(dic)
    print(len(dic))

    3、成员运算in和not in:字典的成员运算判断的是key

    dic={'name':'egon','age':18,}
    print(18 in dic)
    print('age' in dic)

    4、删除

    dic={'name':'egon','age':18,}
    # 通用
    del dic['name']
    print(dic)
    del dic['xxx'] ##key不存在则报错
    
    
    res=dic.pop('age') #删除key对应的value,并返回value
    print(dic)
    print(res) #
    dic.pop('xxx') #key不存在则报错
    
    res=dic.popitem()
    print(dic)
    print(res

    5、键keys(),值values(),键值对items()  注意python2与python3之间的区别

    dic={'name':'egon','age':18,}
    print(dic.keys())
    l=[]
    for k in dic.keys():
        l.append(k)
    print(l)
    print(list(dic.keys()))
    print(dic.values())
    print(list(dic.values()))
    print(dic.items())
    print(list(dic.items()))

    6、循环

    dic={'name':'egon','age':18,'sex':'male'}
    
    for k in dic.keys():
        print(k,dic[k])
    
    for k in dic:
        print(k,dic[k])
    
    for v in dic.values():
        print(v)
    
    for k,v in dic.items():
        print(k,v)

    需要掌握的操作

    # dic.get()
    dic={'name':'egon','age':18,'sex':'male'}
    dic['xxx']
    v=dic.get('name')
    print(v)
    
    v=dic.get('xxx')
    print(v)
    #dic.fromkeys()的用法:
    l=['name','age','sex']
    dic={'name':None,'age':None,'sex':None}
    dic={}
    for k in l:
        dic[k]=None
    print(dic)
    
    dic=dic.fromkeys(l,None)
    print(dic)
    old_dic={'name':'egon','age':18,'sex':'male'}
    new_dic={'name':'EGON','x':1,'y':2}
    old_dic.update(new_dic)
    print(old_dic)
    # setdefault:有则不动/返回原值,无则添加/返回新值
    dic={'name':'egon','age':18}
    res=dic.setdefault('name','EGON') # 字典中已经存在key则不修改,返回已经存在的key对应的value
    print(dic)
    print(res)
    
    res=dic.setdefault('sex','male') # 字典不存在key则添加"sex":"male",返回新的value
    print(dic)
    print(res)

    三.集合(set 存多个值,无序,set可变)

    基本使用:set

    1.用途: 关系运算,去重

    2.定义方式: 在{}内用逗号分开个的多个值

     集合的三大特性:
       2.1 每一个值都必须是不可变类型
          2.2 元素不能重复
       2.3 集合内元素无序

    s={1,3.1,'aa',(1,23),} # s=set({1,3.1,'aa',(1,23),})
    print(s,type(s))
    
    s={1,1,1,1,1,1,1,1,1,2,3}
    print(s)
    
    s={'a','b','c'}
    s[0]
    
    s=set('hello')
    print(s)
    print(set(['a','b','c',[1,2]]))

    3.常用操作+内置方法

    pythons={'李二丫','张金蛋','李银弹','赵铜蛋','张锡蛋','alex','oldboy'}
    linuxs={'lxx','egon','张金蛋','张锡蛋','alex','陈独秀'}
    # 取及报名python课程又报名linux课程的学员:交集
    print(pythons & linuxs)
    print(pythons.intersection(linuxs))
    
    # 取所有报名老男孩课程的学员:并集
    print(pythons | linuxs)
    print(pythons.union(linuxs))
    
    # 取只报名python课程的学员: 差集
    print(pythons - linuxs)
    print(pythons.difference(linuxs))
    
    # 取只报名linux课程的学员: 差集
    print(linuxs - pythons)
    print(linuxs.difference(pythons))
    
    # 取没有同时报名两门课程的学员:对称差集
    print(pythons ^ linuxs)
    print(pythons.symmetric_difference(linuxs))
    
    # 是否相等
    s1={1,2,3}
    s2={3,1,2}
    print(s1 == s2)
    
    # 父集:一个集合是包含另外一个集合
    s1={1,2,3}
    s2={1,2}
    print(s1 >= s2)
    print(s1.issuperset(s2))
    
    s1={1,2,3}
    s2={1,2,4}
    print(s1 >= s2)
    
    # 子集
    s1={1,2,3}
    s2={1,2}
    print(s2 <= s1)
    print(s2.issubset(s1))

    需要掌握的操作

    s1={1,2,3}
    s1.update({3,4,5})
    print(s1)
    
    s1={1,2,3}
    res=s1.pop()
    print(res)
    
    s1={1,2,3}
    res=s1.remove(3) #单纯的删除,返回值为None
    print(s1)
    
    s1={1,2,3}
    s1.add(4)
    print(s1)
    
    s1={1,2,3}
    s2={1,2}
    s1.difference_update(s2) #s1=s1.difference(s2)
    print(s1)
    
    s1={1,2,3}
    res=s1.discard(3) ##单纯的删除,返回值为None
    print(s1)
    print(res)
    s1.remove(444444) #删除的元素不存在则报错
    s1.discard(444444) #删除的元素不存在不会报错
    
    
    s1={1,2,3}
    s2={1,2,4}
    print(s1.isdisjoint(s2)) #如果两个集合没有交集则返回True
    
    s1={1,2,3}
    s2={4,5,6}
    print(s1.isdisjoint(s2)) #如果两个集合没有交集则返回True

    集合去重:

    names=['alex','egon','alex','alex','egon','lxx']
    s=set(names)
    print(s)
    l=list(s)
    print(l)
    
    
    
    
    
    stus_info=[
        {'name':'egon','age':18},
        {'name':'alex','age':73},
        {'name':'oldboy','age':84},
        {'name': 'egon', 'age': 18},
        {'name': 'egon', 'age': 18},
        {'name': 'egon', 'age': 18},
        {'name': 'oldboy', 'age': 84},
    
    ]
    # set(stus_info) # 报错
    l=[]
    for info in stus_info:
        if info not in l:
            l.append(info)
    
    # print(l)
    stus_info=l
    print(stus_info) 
    万般皆下品,唯有读书高!
  • 相关阅读:
    Linux基础知识
    oracle用户及表空间基础
    渗透测试之目录扫描-Dirbuster
    oracle自定义函数身份证15位和18位的转换
    linux 网络带宽和延时测试
    LNMP(linux+nginx+mysql+php)服务器环境配置
    使用Medusa美杜莎暴力破解SSH密码
    暴力密码在线破解工具
    在linux下搭建NFS服务器实现文件共享
    Nginx是做什么的
  • 原文地址:https://www.cnblogs.com/s686zhou/p/11132473.html
Copyright © 2011-2022 走看看