python3(元组,列表,集合,字典)

发布时间:2019-08-13 07:41:17编辑:auto阅读(1509)

    1.列表
    1)创建列表
    数组:存储同一种数据类型的集合 scores=[12,13,14]
    列表:(打了激素的数组):可以存储任意数据类型的集合

    列表里:可以存储不同的数据类型

     s=[1,4,5,'ty']
     print s,type(s)

    列表里面也可以嵌套列表(列表:也是一种数据类型)

     s=[1,4,2,[1,4,'aa']]
     print s,type(s)

    2)列表的特性

    # # 索引
    # print service[0]
    # print service[-1]
    # # 切片
    # print service[::-1] # 列表的翻转
    # print service[1:] # 除了第一个元素之外的其他元素
    # print service[:-1] # 除了最后一个元素之外的其他元素
    # # 重复
    # print service * 3
    # # 连接
    # service1 = ['mysql','firewalld']
    # print service + service1
    # # 成员操作符
    # print 'firewalld' in service
    # print 'firewalld' in service1
    # print 'firewalld' not in service
    # for循环遍历
    # print '显示服务'.center(50,'*')
    # for se in service:
    #     print se
    # 列表里嵌套列表
    service2 = [['http',80],['ssh',22],['ftp',21]]
    # 索引
    print service2[0][1]
    print service2[-1][1]
    # 切片
    print service2[:][1]
    print service2[:-1][0]
    print service2[0][:-1]

    假定有下面这样的列表:
    names = [‘fentiao’, ‘fendai’, ‘fensi’, ‘apple’]
    输出结果为:’I have fentiao, fendai, fensi and apple.’

    names = ['fentiao', 'fendai', 'fensi', 'apple']
    print 'I have ' + ','.join(names[:-1]) + ' and ' + names[-1]

    3)列表的查看

    service = ['http', 'ssh', 'ftp','ftp']
    
    # 查看列表中元素出现的次数
    print service.count('ssh')
    
    # 查看指定元素的索引值
    print service.index('ssh')

    4)列表的增加

    # 1.
    print service + ['firewalld']
    
    # 2.append:追加 追加一个元素到列表中
    service.append('firewalld')
    print service
    
    # 3.extend:拉伸 追加多个元素到列表中
    service.extend(['mysql', 'firewalld'])
    print service
    
    # 4. insert:在指定索引位置插入元素
    service.insert(1,'samab')
    print service

    5)列表的删除

    service = ['http', 'ssh', 'ftp']
    
    # #1.如果pop()不传递值的时候,默认弹出最后一个元素
    # print service.pop()
    # # pop()也可以传递索引值
    # print service.pop(0)
    
    # 2.remove:删除指定的元素
    # service.remove('ssh')
    # print service
    
    # 3.del 关键字 从内存中删除列表
    # print service
    # del service
    # print service

    6)列表的修改

    service = ['http', 'ssh', 'ftp']
    
    # 通过索引,重新赋值
    service[0] = 'mysql'
    print service
    
    # 通过切片
    print service[:2]
    service[:2] = ['samba','ladp']
    print service

    2.元组(tuple)
    带了紧箍咒的列表
    元组本身不可变数据类型,没有增删改差
    元组内可以存储任意数据类型
    1)元组的创建

    t = (1,2,3,4.0,'star')
    print t,type(t)
    # 元组里面包含可变数据类型,可以间接修改元组的内容
    t1 = ([1,2,3],4)
    t1[0].append(4)
    print t1
    
    # 元组如果只有一个元素的时候,后面一定要加逗号,否则数据类型不确定
    t2 = ('hello',)
    t3 = (1,)
    print type(t2),type(t3)
    2)元组的特性
    allowUsers = ('root','westos','fentiao')
    allowPasswd = ('123','456','789')
    
    # 索引 # 切片
    print allowUsers[0]
    print allowUsers[-1]
    print allowUsers[1:]
    print allowUsers[2:]
    print allowUsers[:-1]
    print allowUsers[::-1]
    
    # 重复
    print allowUsers * 3
    # 连接
    print allowUsers + ('fensi','fendai')
    # 成员操作符
    print 'westos' in allowUsers
    print 'westos' not in allowUsers

    3)元组的应用场景

    # 1.变量交换数值
    # a = 1
    # b = 2
    # b,a = a,b
    # # 先把(a,b)封装成了一个元组(1,2)
    # # b,a = a,b
    # # b =(1,2)[0] a=(1,2)[1]
    # print a,b
    
    # 2.打印变量值
    # name = 'westos'
    # age = 10
    # t = (name,age)
    # print 'name: %s,age: %d' %(name,age)
    # print 'name: %s,age: %d' %t
    
    # 3.元组的赋值:有多少个元素,就用多少个变量接收
    # t = ('westos',10,100)
    # name,age,score = t
    # print name,age,score
    
    scores = (100,89,45,78,65)
    # scoresLi = list(scores)
    # scoresLi.sort()
    # print scoresLi
    scores = sorted(scores)
    print scores

    3.集合
    1)集合的定义

    # 集合里面的元素是不可重复的
    s = {1,2,3,1,2,3,4,5}
    print s,type(s)
    s1 = {1}
    print s1,type(s1)
    # 如何定义一个空集合
    # s2 = {}
    # print type(s2)
    s3 = set([])
    print s3,type(s3)
    
    # 集合的应用
    li = [1,2,3,1,2,3]
    print list(set(li))

    2)集合的特性
    集合只支持 成员操作符 for循环

    s = {1,2,3}
    #print s[0]
    # print s * 3
    # print s + {5,4,6}
    print 1 in s
    for i in s:
        print i,
    for i,v in enumerate(s):
        print 'index: %s,value:%s' %(i,v)

    3)集合常用的方法

      s = {6, 7, 8, 1, 2, 3}
    #  增加
    # s.add(10)
    # s.add(9)
    # print s
    # 增加多个元素
    # s.update({4,5})
    # print s
    # 删除
    # print s
    # s.pop()
    # print s
    # 删除指定的元素
    # s.remove(2)
    # print s
    
    
    # 交集 并集 差集
    s1 = {1, 2, 3}
    s2 = {2, 3, 4}
    
    # 并集
    print '并集:', s1.union(s2)
    print '并集:', s1 | s2
    
    # 交集
    print '交集:', s1.intersection(s2)
    print '交集:', s1 & s2
    
    # 差集
    # 可以理解为s1中有哪些s2中没有的元素
    print '差集:', s1.difference(s2)  # s1-(s1&s2)
    print '差集:', s1 - s2
    # 可以理解为s2中有哪些s1中没有的元素
    print '差集:', s2.difference(s1)  # s2-(s1&s2)
    print '差集:', s2 - s1
    
    # 对等差分:并集-交集
    print '对等差分:', s1.symmetric_difference((s2))
    print '对等差分:', s1 ^ s2
    
    s3 = {1, 2}
    s4 = {1, 2, 3}
    
    # s3是否为s4的子集
    print s3.issubset(s4)
    # s3是否为s4的超集
    # 什么是超集:如果s3中的每一个元素都在集合s4中,且
    # s4中可能包含s3中没有的元素,则s4就是s3的一个超集
    print s3.issuperset(s4)
    
    # 两个集合是不是不相交
    print s3.isdisjoint(s4)

    python中常用的内置方法

    # 枚举:返回索引值和对应的value值
    # s = 'hello'
    # for i in s:
    #     print i
    # for i,v in enumerate('hello'):
    #     print i
    #     print type(i)
    #     print v
    #     print type(v)
    #     print str(i) + '---->' + v
    
    # s1 = 'abc'
    # s2 = '123'
    #
    # for i in zip(s1,s2):
    #     #print i
    #     print '-'.join(i)

    4.字典
    1)字典的定义
    字典是一个无序的数据集合,使用print输出字典的时候
    通常输出的顺序和定义的顺序是不一致的

    # message = {
    #     'name':'tom',
    #     'age':18,
    #     'height':1.80,
    #     'weight':75.5
    # }
    # print message
    # s = {}
    # print type(s)
    # s = {
    #     'fentiao':[100,90,80],
    #     'westos':[199,199,199]
    # }
    # print s
    
    d = dict()
    print d,type(d)
    
    d = dict(a=1,b=2)
    print d,type(d)

    2)字典的增加

    d = dict(a=1, b=2)
    # print d
    # # 添加或者更改key-value对
    # d['g'] = 10
    # print d
    # d['a'] = 10
    # print d
    """
    update:
        如果key值存在,更新value值
        如果key值不存在,添加key-value值
    """
    # d.update({'a':4,'f':1})
    # print d
    
    """
    setdefault
        如果key值已经存在,不做修改
        如果key值不存在,添加key-value值
    """
    d.setdefault('a',10)
    print d

    3)字典的删除

    d = dict(a=1, b=2,c=3)
    # pop:弹出指定的key-value值
    # d.pop('a')
    # print d
    # print d
    # d.popitem()
    # print d
    
    del d['a']
    print d
    

    4)字典的修改和查看

    service = {
        'http':80,
        'mysql':3306
    }
    
    # 查看字典里面所有的key值
    print service.keys()
    
    # 查看字典里面所有的value值
    print service.values()
    
    # 查看字典里面所有的key-value值
    print service.items()
    
    # 遍历
    for k,v in service.items():
        print k,'---->',v
    
    for k in service:
        print k,'----->',service[k]
    
    # print service['https']
    # if 'https' in service:
    #     print service['https']
    # else:
    #     print 'key not exist'
    
    """
    get方法获取指定key对应的value值
        如果key值存在,返回对应的value值
        如果key值不存在,默认返回None,如果需要指定返回值,传值即可
    """
    print service.get('http','key not exist')

关键字