zoukankan      html  css  js  c++  java
  • Python基础-列表_元组_字典_集合

    本节内容

    1. 列表、元组操作
    2. 字符串操作
    3. 字典操作
    4. 集合操作
    5. 文件操作
    6. 字符编码与转码 

    1. 列表、元组操作

    列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作

    定义列表示例

    1 names = ["ZhangYang"," Guyun"," Xiangpeng"," XuLiangChen"]

    通过下标访问列表中的元素,下标从0开始计数

    1 >>> names[0]
    2 'ZhangYang'

    切片示例1

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 #!/usr/bin/env python
     6 # -*- coding:utf-8 -*-
     7 #Author: huzhihua
     8 
     9 names = "ZhangYang Guyun Xiangpeng XuLiangChen"
    10 names = ["ZhangYang"," Guyun"," Xiangpeng"," XuLiangChen"]
    11 
    12 print(names)
    13 print(names[0],names[2])
    14 print(names[1:3])       #这就是切片(从0开始切,0就是ZhangYang)

    执行结果:

    1 ['ZhangYang', ' Guyun', ' Xiangpeng', ' XuLiangChen']
    2 ZhangYang  Xiangpeng
    3 [' Guyun', ' Xiangpeng']

    切片示例2

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 names = "ZhangYang Guyun Xiangpeng XuLiangChen"
     6 names = ["ZhangYang"," Guyun"," Xiangpeng"," XuLiangChen"]
     7 
     8 print(names)
     9 print(names[0],names[2])
    10 print(names[1:3])  #这就是切片(从0开始,取下标1至下标3之间的数字,包括1,不包括3)
    11print(names[3]) #取第3个值,从0从始取
    12print(names[-2]) #在不知道是多长的情况下,取出最后2个位置
    13print(names[-2:]) #要取最后面的值,把-1省略掉
    14print(names[0:3]) #取从0-3
    15print(names[:3]) #如果是从头开始取,0可以忽略,跟上句效果一样

    执行结果:

    1 ['ZhangYang', ' Guyun', ' Xiangpeng', ' XuLiangChen']
    2 ZhangYang  Xiangpeng
    3 [' Guyun', ' Xiangpeng']
    4  XuLiangChen
    5  Xiangpeng
    6 [' Xiangpeng', ' XuLiangChen']
    7 ['ZhangYang', ' Guyun', ' Xiangpeng']
    8 ['ZhangYang', ' Guyun', ' Xiangpeng']

    追加示例

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #Author: nulige
    4 
    5 names = "ZhangYang Guyun Xiangpeng XuLiangChen"
    6 names = ["ZhangYang"," Guyun"," Xiangpeng"," XuLiangChen"]
    7 names.append("LeiHaidong")   #追加到最后一行
    8 print(names)

    执行结果:

    1 ['ZhangYang', ' Guyun', ' Xiangpeng', ' XuLiangChen', 'LeiHaidong']

    插入示例

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 names = "ZhangYang Guyun Xiangpeng XuLiangChen"
     6 names = ["ZhangYang"," Guyun"," Xiangpeng"," XuLiangChen"]
     7 names.append("LeiHaidong")   #追加到最后一行
     8 names.insert(1,"nulige")     #插到那个位置 就写那个位置
     9 names.insert(3,"Xinzhiyu")   #插入3的位置,不能批量插入
    10 print(names)

    执行结果:

    1 ['ZhangYang', 'nulige', ' Guyun', 'Xinzhiyu'' Xiangpeng', ' XuLiangChen', 'LeiHaidong']

    修改示例

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 names = "ZhangYang Guyun Xiangpeng XuLiangChen"
     6 names = ["ZhangYang"," Guyun"," Xiangpeng"," XuLiangChen"]
     7 names.append("LeiHaidong")   #追加到最后一行
     8 names.insert(1,"nulige")     #插到那个位置 就写那个位置
     9 names.insert(3,"Xinzhiyu")   #插入3的位置,不能批量插入
    10 names[2] ="XieDi"        #修改
    11 print(names)

    执行结果:

    1 ['ZhangYang', 'nulige', 'XieDi', 'Xinzhiyu', ' Xiangpeng', ' XuLiangChen', 'LeiHaidong']

    删除示例

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 names = "ZhangYang Guyun Xiangpeng XuLiangChen"
     6 names = ["ZhangYang"," Guyun"," Xiangpeng"," XuLiangChen"]
     7 names.append("LeiHaidong")   #追加到最后一行
     8 names.insert(1,"Nulige")     #插到那个位置 就写那个位置
     9 names.insert(3,"Xinzhiyu")   #插入3的位置,不能批量插入
    10 names[2] ="XieDi"
    11 
    12 #delete
    13 names.remove("Nulige")   #删除Nulige
    14 del names[1]
    15 print(names)

    执行效果:

    删除前效果:

    ['ZhangYang', 'Nulige', 'XieDi', 'Xinzhiyu', ' Xiangpeng', ' XuLiangChen', 'LeiHaidong']

    删除后效果:

    1 ['ZhangYang', 'Xinzhiyu', ' Xiangpeng', ' XuLiangChen', 'LeiHaidong']

    index示例

    查找XieDi的位置,并将找到的结果打印出来
     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 names = "ZhangYang Guyun Xiangpeng XuLiangChen"
     6 names = ["ZhangYang"," Guyun","XieDi"," Xiangpeng"," XuLiangChen"]
     7 
     8 # 查找XieDi的位置,并将找到的结果打印出来
     9 print(names)
    10 print(names.index("XieDi"))           #找到XieDi
    11 print(names[names.index("XieDi")])    #把他打印出来

    执行结果:

    1 ['ZhangYang', ' Guyun', 'XieDi', ' Xiangpeng', ' XuLiangChen']
    2 2
    3 XieDi

    拷贝示例1

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #Author: nulige
    4 
    5 names = ["4ZhangYang"," #!Guyun","xXieDi"," Xiangpeng"," XuLiangChen"]
    6 names2 = names.copy()
    7 print(names)
    8 print(names2)

    执行结果:

    1 ['4ZhangYang', ' #!Guyun', 'xXieDi', ' Xiangpeng', ' XuLiangChen']
    2 ['4ZhangYang', ' #!Guyun', 'xXieDi', ' Xiangpeng', ' XuLiangChen']

    拷贝示例2

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 names = ["4ZhangYang","#!Guyun","XiangPeng","ChenRonghua"]
     6 names2 = names.copy()
     7 print(names)
     8 print(names2)
     9 names[2] = "向鹏"
    10 print(names)

    执行结果:

    1 ['4ZhangYang', '#!Guyun', 'XiangPeng', 'ChenRonghua']
    2 ['4ZhangYang', '#!Guyun', 'XiangPeng', 'ChenRonghua']
    3 ['4ZhangYang', '#!Guyun', '向鹏', 'ChenRonghua']

    拷贝示例3

     1、浅拷贝

    示例1

    浅拷贝就是浅浅的copy一层

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 #import copy
     5 names = ["4ZhangYang","#!Guyun","XiangPeng",["alex","jack"],"ChenRonghua"]
     6 names2 = names.copy()
     7 print(names)
     8 print(names2)
     9 names[2] = "向鹏"
    10 names[3][0] = "ALEXANDER"    #注意:复制列表,只会复制一层
    11 print(names)
    12 print(names2)

    执行结果:

    1 ['4ZhangYang', '#!Guyun', 'XiangPeng', ['alex', 'jack'], 'ChenRonghua']
    2 ['4ZhangYang', '#!Guyun', 'XiangPeng', ['alex', 'jack'], 'ChenRonghua']
    3 ['4ZhangYang', '#!Guyun', '向鹏', ['ALEXANDER', 'jack'], 'ChenRonghua']
    4 ['4ZhangYang', '#!Guyun', 'XiangPeng', ['ALEXANDER', 'jack'], 'ChenRonghua']   #只拷贝了第一层,所以向鹏没有变

    示例2

    运行结果报错,后期再解决

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 import copy
     6 
     7 person=['name',['a',100]]
     8 #p1=copy.deepcopy(person)
     9 p1=copy.copy(person)
    10 p2=person[:]
    11 p3=list(person)

    结果省略...

    示例3

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 person = ['name',['saving',100]]
     6 p1=person[:]
     7 p2=person[:]
     8 p1[0]='alex'
     9 p2[0]='fenjie'
    10 p1[1][1]=50    #浅拷贝的作用,用于创建联合账号(100元,两人的两个账号各分一半,变成两个50元)
    11 print(p1)
    12 print(p2)

    执行结果:

    1 ['alex', ['saving', 50]]
    2 ['fenjie', ['saving', 50]]

    2、深拷贝

    此实验还有点小问题,后期修改。

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 import copy
     6 
     7 names = ["4ZhangYang","#!Guyun","XiangPeng",["alex","jack"],"ChenRonghua"]
     8 #names2 = names.copy()
     9 #names2 = copy.copy(names)
    10 names2 = copy.deepcopy(names)
    11 print(names)
    12 print(names2)
    13 names[2] = "向鹏"
    14 names[3][0] = "ALEXANDER"    #注意:复制列表,只会复制一层
    15 print(names)
    16 print(names2)

    执行结果:省略......

    列表循环

     用for实现列表循环

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 #Author: nulige
    4 
    5 #定义一个列表
    6 names = ["4ZhangYang","#!Guyun","XiangPeng",["alex","jack"],"ChenRonghua"]
    7 for i in names:
    8     print(i)

    执行结果:

    1 4ZhangYang
    2 #!Guyun
    3 XiangPeng
    4 ['alex', 'jack']
    5 ChenRonghua

    跳着切片示例

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 #跳着切片
     6 names = ["4ZhangYang","#!Guyun","XiangPeng",["alex","jack"],"ChenRonghua","Xuliangche"]
     7 print(names[0:-1:2])
     8 print(names[::2])
     9 print(names[:])   #0到-1
    10 
    11 for i in names:
    12     print(i)

    执行结果:

    1 ['4ZhangYang', 'XiangPeng', 'ChenRonghua']
    2 ['4ZhangYang', 'XiangPeng', 'ChenRonghua']
    3 ['4ZhangYang', '#!Guyun', 'XiangPeng', ['alex', 'jack'], 'ChenRonghua', 'Xuliangche']
    4 4ZhangYang
    5 #!Guyun
    6 XiangPeng
    7 ['alex', 'jack']
    8 ChenRonghua
    9 Xuliangche

    元组 (也叫不可变列表)

    元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表。
     
    语法
    names = ("ales","jack","eric")

    它只有两个方法,一个是count,一个是index。

    示例:

     1 #定义一个元组
     2 tuple1 = (1, 2, '3', 4, '5')
     3 # 定义了一个元组之后就无法再添加或修改元组中的元素
     4 print tuple1[0]    # 元组的元素都有确定的顺序。元组的索引也是以0为基点的
     5 print tuple1[-1]   # 负的索引从元组的尾部开始计数
     6 print tuple1[1:3]  # 元组也可以进行切片操作。对元组切片可以得到新的元组。
     7 # 可以使用 in 运算符检查某元素是否存在于元组中。
     8 print 1 in tuple1   # True
     9 #使用for in 进行遍历元组
    10 for item in tuple1:
    11     print item
    12 # 如果需要获取item的序号 可以使用下面的遍历方法:
    13 for index in range(len(tuple1)):
    14     print tuple1[index]
    15 # 还可以使用内置的enumerate函数
    16 for index, item in enumerate(tuple1):
    17     print '%i, %s' % (index, item)

    统计示例

    #统计有两个XieDi

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 names = "ZhangYang Guyun Xiangpeng XuLiangChen "
     6 names = ["ZhangYang"," Guyun","XieDi"," Xiangpeng"," XuLiangChen"]
     7 names.append("LeiHaidong")
     8 names.insert(1,"ChenRonghua")
     9 names.insert(3,"Xinzhiyu")   #插入
    10 names[2] ="XieDi"            #修改
    11 print(names)
    12 print(names.count("XieDi"))

    执行结果:

    1 ['ZhangYang', 'ChenRonghua', 'XieDi', 'Xinzhiyu', 'XieDi', ' Xiangpeng', ' XuLiangChen', 'LeiHaidong']
    2 2

    清除示例

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 names = "ZhangYang Guyun Xiangpeng XuLiangChen "
     6 names = ["ZhangYang"," Guyun","XieDi"," Xiangpeng"," XuLiangChen"]
     7 names.append("LeiHaidong")
     8 names.insert(1,"ChenRonghua")
     9 names.insert(3,"Xinzhiyu")   #插入
    10 names[2] ="XieDi"            #修改
    11 print(names)
    12 print(names.count("XieDi"))
    13 
    14 #clear
    15 names.clear()
    16 print(names)

    执行结果

    1 ['ZhangYang', 'ChenRonghua', 'XieDi', 'Xinzhiyu', 'XieDi', ' Xiangpeng', ' XuLiangChen', 'LeiHaidong']
    2 2
    3 []   

    反转示例1

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 names = "ZhangYang Guyun Xiangpeng XuLiangChen "
     6 names = ["ZhangYang"," Guyun","XieDi"," Xiangpeng"," XuLiangChen"]
     7 names.append("LeiHaidong")
     8 names.insert(1,"ChenRonghua")
     9 names.insert(3,"Xinzhiyu")   #插入
    10 names[2] ="XieDi"            #修改
    11 print(names)
    12 print(names.count("XieDi"))
    13 
    14 #reverse
    15 names.reverse()
    16 print(names)

    执行结果:

    1 ['ZhangYang', 'ChenRonghua', 'XieDi', 'Xinzhiyu', 'XieDi', ' Xiangpeng', ' XuLiangChen', 'LeiHaidong']    
    2 2
    3 ['LeiHaidong', ' XuLiangChen', ' Xiangpeng', 'XieDi', 'Xinzhiyu', 'XieDi', 'ChenRonghua', 'ZhangYang']    #对比第一行,反转过来了

    反转示例2

     1 >>> names
     2 ['Alex', 'Tenglan', 'Amy', 'Tom', 'Amy', 1, 2, 3]
     3 >>> names.sort() #排序
     4 Traceback (most recent call last):
     5   File "<stdin>", line 1, in <module>
     6 TypeError: unorderable types: int() < str()   #3.0里不同数据类型不能放在一起排序了,擦
     7 >>> names[-3] = '1'
     8 >>> names[-2] = '2'
     9 >>> names[-1] = '3'
    10 >>> names
    11 ['Alex', 'Amy', 'Amy', 'Tenglan', 'Tom', '1', '2', '3']
    12 >>> names.sort()
    13 >>> names
    14 ['1', '2', '3', 'Alex', 'Amy', 'Amy', 'Tenglan', 'Tom']

    排序示例

    按ASCII码顺序进行排序的

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 names = ["4ZhangYang"," #!Guyun","xXieDi"," Xiangpeng"," XuLiangChen"]
     6 print(names)
     7 
     8 #排序(sort)
     9 names.sort()
    10 print(names)

    执行结果:

    1 ['4ZhangYang', ' #!Guyun', 'xXieDi', ' Xiangpeng', ' XuLiangChen']
    2 [' #!Guyun', ' Xiangpeng', ' XuLiangChen', '4ZhangYang', 'xXieDi']

    扩展示例

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 names = ["4ZhangYang"," #!Guyun","xXieDi"," Xiangpeng"," XuLiangChen"]
     6 print(names)
     7 
     8 names2 = [1,2,3,4]
     9 names.extend(names2)
    10 print(names)

    执行结果:

    1 ['4ZhangYang', ' #!Guyun', 'xXieDi', ' Xiangpeng', ' XuLiangChen']
    2 ['4ZhangYang', ' #!Guyun', 'xXieDi', ' Xiangpeng', ' XuLiangChen', 1, 2, 3, 4]

    删除列表中的变量示例

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 names = ["4ZhangYang"," #!Guyun","xXieDi"," Xiangpeng"," XuLiangChen"]
     6 print(names)
     7 
     8 names2 = [1,2,3,4]
     9 names.extend(names2)
    10 del names2
    11 print(names,names2)

    执行结果:

    会报错,因为找不到nemes2变量的值

    1 Traceback (most recent call last):
    2 ['4ZhangYang', ' #!Guyun', 'xXieDi', ' Xiangpeng', ' XuLiangChen']
    3   File "D:/python/day2/name_test02.py", line 11, in <module>
    4     print(names,names2)
    5 NameError: name 'names2' is not defined

     字符串操作

     1 >>> a = 'alex'
     2 >>> a [1]
     3 'l'
     4 >>> a[2]
     5 'e'
     6 
     7 #备注:列表不能直接赋值
     8 
     9 >>> a[2] = '222'
    10 Traceback (most recent call last):
    11   File "<stdin>", line 1, in <module>
    12 TypeError: 'str' object does not support item assignment

    集合操作

    集合的元素是不允许重复且无序的集合,集合就像是字典舍弃了值一样。

    主要作用如下:

    • 去重,把一个列表变成集合,就自动去重了
    • 关系测试,测试两组数据之前的交集、差集、并集等关系
     1 s = set([3,5,9,10])      #创建一个数值集合  
     2   
     3 t = set("Hello")         #创建一个唯一字符的集合  
     4 
     5 
     6 a = t | s          # t 和 s的并集  
     7   
     8 b = t & s          # t 和 s的交集  
     9   
    10 c = t – s          # 求差集(项在t中,但不在s中)  
    11   
    12 d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
    13   
    14    
    15   
    16 基本操作:  
    17   
    18 t.add('x')            # 添加一项  
    19   
    20 s.update([10,37,42])  # 在s中添加多项  
    21   
    22    
    23   
    24 使用remove()可以删除一项:  
    25   
    26 t.remove('H')  
    27   
    28   
    29 len(s)  
    30 set 的长度  
    31   
    32 x in s  
    33 测试 x 是否是 s 的成员  
    34   
    35 x not in s  
    36 测试 x 是否不是 s 的成员  
    37   
    38 s.issubset(t)  
    39 s <= t  
    40 测试是否 s 中的每一个元素都在 t 中  
    41   
    42 s.issuperset(t)  
    43 s >= t  
    44 测试是否 t 中的每一个元素都在 s 中  
    45   
    46 s.union(t)  
    47 s | t  
    48 返回一个新的 set 包含 s 和 t 中的每一个元素  
    49   
    50 s.intersection(t)  
    51 s & t  
    52 返回一个新的 set 包含 s 和 t 中的公共元素  
    53   
    54 s.difference(t)  
    55 s - t  
    56 返回一个新的 set 包含 s 中有但是 t 中没有的元素  
    57   
    58 s.symmetric_difference(t)  
    59 s ^ t  
    60 返回一个新的 set 包含 s 和 t 中不重复的元素  
    61   
    62 s.copy()  
    63 返回 set “s”的一个浅复制

    常用操作

    交集(intersection)

    两组列表中,取相同的值

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 list_1 = [1,4,5,7,3,6,7,9]
     6 list_1 = set(list_1)
     7 print(list_1,type(list_1))
     8 
     9 list_2 = ([2,6,0,66,22,8,4])
    10 print(list_1,list_2)
    11 
    12 #交集
    13 print( list_1.intersection(list_2) )

    执行结果:

    1 {1, 3, 4, 5, 6, 7, 9} <class 'set'>
    2 {1, 3, 4, 5, 6, 7, 9} [2, 6, 0, 66, 22, 8, 4]
    3 {4, 6}

    并集(union)

    两个列表合并成一个,去掉重复的值

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 list_1 = [1,4,5,7,3,6,7,9]
     6 list_1 = set(list_1)
     7 print(list_1,type(list_1))
     8 
     9 list_2 = ([2,6,0,66,22,8,4])
    10 print(list_1,list_2)
    11 
    12 #并集
    13 print(list_1.union(list_2))

    执行结果:

    1 {1, 3, 4, 5, 6, 7, 9} <class 'set'>
    2 {1, 3, 4, 5, 6, 7, 9} [2, 6, 0, 66, 22, 8, 4]
    3 {0, 1, 2, 3, 4, 5, 6, 7, 66, 9, 8, 22}

    差集(difference)

    只保留list1里面有的,list2中没有的值。

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 list_1 = [1,4,5,7,3,6,7,9]
     6 list_1 = set(list_1)
     7 print(list_1,type(list_1))
     8 
     9 list_2 = ([2,6,0,66,22,8,4])
    10 print(list_1,list_2)
    11 
    12 #差
    13 print(list_1.difference(list_2))
    14 print(list_2.difference(list_1))

    执行结果:

    1 {1, 3, 4, 5, 6, 7, 9} <class 'set'>
    2 {1, 3, 4, 5, 6, 7, 9} [2, 6, 0, 66, 22, 8, 4]
    3 {1, 3, 5, 7, 9}
    4 {0,8,2,66,22}

    对称差集(symmetric_difference)

    把交集去掉了,留下的不是并集,把两个互相都没有的,取出来。

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 list_1 = [1,4,5,7,3,6,7,9]
     6 list_1 = set(list_1)
     7 
     8 list_2 = ([2,6,0,66,22,8,4])
     9 print(list_1,list_2)
    10 
    11 
    12 #反向差集
    13 print(list_1.symmetric_difference(list_2))

    执行结果:

    1 {1, 3, 4, 5, 6, 7, 9} [2, 6, 0, 66, 22, 8, 4]
    2 {0, 1, 2, 66, 3, 5, 8, 7, 9, 22}

    isdisjoint

    判断有没有交集,如果有返回False,否则返回True

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 list_1 = [1,4,5,7,3,6,7,9]
     6 list_1 = set(list_1)
     7 
     8 list_2 = ([2,6,0,66,22,8,4])
     9 print(list_1,list_2)
    10 
    11 #子集
    12 list_3 = set([1,3,7])
    13 print(list_3.issubset(list_1))
    14 print(list_1.issubset(list_3))
    15 
    16 print("---------------------------------")
    17 list_4 = set([5,6,8])
    18 print(list_3.isdisjoint(list_4))

    执行结果:

    1 {1, 3, 4, 5, 6, 7, 9} [2, 6, 0, 66, 22, 8, 4]
    2 True
    3 False
    4 ---------------------------------
    5 True

    判断有没有交集,如果有返回False,否则返回True

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 list_1 = [1,4,5,7,3,6,7,9]
     6 list_1 = set(list_1)
     7 
     8 list_2 = ([2,6,0,66,22,8,4])
     9 print(list_1,list_2)
    10 
    11 #子集
    12 list_3 = set([1,3,7])
    13 print(list_3.issubset(list_1))
    14 print(list_1.issubset(list_3))
    15 
    16 print("---------------------------------")
    17 list_4 = set([5,6,7,8])
    18 print(list_3.isdisjoint(list_4))

    执行结果:

    1 {1, 3, 4, 5, 6, 7, 9} [2, 6, 0, 66, 22, 8, 4]
    2 True
    3 False
    4 ---------------------------------
    5 False

    子集(issubset)

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 list_1 = [1,4,5,7,3,6,7,9]
     6 list_1 = set(list_1)
     7 
     8 list_2 = ([2,6,0,66,22,8,4])
     9 print(list_1,list_2)
    10 
    11 #差集
    12 print( list_1.intersection(list_2))
    13 
    14 #子集
    15 list_3 = set([1,3,7])
    16 print(list_3.issubset(list_1))
    17 print(list_1.issubset(list_3))

    执行结果:

    1 {1, 3, 4, 5, 6, 7, 9} [2, 6, 0, 66, 22, 8, 4]
    2 {4, 6}
    3 True
    4 False

    交集、并集、差集、对称差集另一种用法

     1 #交集(intersection)
     2 print(list_1 & list_2)
     3 
     4 #并集 union
     5 print(list_2 | list_1)
     6 
     7 #差集 difference (in list 1 but not in list 2)
     8 print(list_1 - list_2)
     9 
    10 #对称差集
    11 print(list_1 ^ list_2)

     常用操作

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 #Author: nulige
     4 
     5 list_1 = [1,4,5,7,3,6,7,9]
     6 list_1 = set(list_1)
     7 
     8 list_2 = ([2,6,0,66,22,8,4])
     9 print(list_1,list_2)
    10 
    11 #添加一项(无序插入)
    12 list_1.add(999)
    13 print(list_1)
    14 
    15 #添加多项
    16 list_1.update([888,777,555])
    17 print(list_1)
    18 
    19 #pop (删除)
    20 # Remove and teturn an arbitrary set element.
    21 # 删除一个,并返回一个任意的
    22 print(list_1.pop())
    23 print(list_1.pop())
    24 print(list_1.pop())
    25 print(list_1.pop())
    26 
    27 #discard
    28 print( list_1.discard(888) )

    执行结果:

    1 {1, 3, 4, 5, 6, 7, 9} [2, 6, 0, 66, 22, 8, 4]
    2 {1, 3, 4, 5, 6, 7, 999, 9}
    3 {1, 3, 4, 5, 6, 7, 999, 9, 777, 555, 888}
    4 1
    5 3
    6 4
    7 5
    8 None

     

  • 相关阅读:
    jmeter接口测试----7文件上传
    jmeter接口测试----6获取所有学生信息
    jmeter接口测试----5学生金币充值
    jmeter接口测试----4添加学生信息
    jmeter接口测试----3登录
    jmeter接口测试----2获取学生信息
    jmeter接口测试----1准备阶段
    Android程序员必备精品资源 工具类
    android sdk更新后出现please update ADT to the latest version的解决方法
    Android IntentService完全解析 当Service遇到Handler
  • 原文地址:https://www.cnblogs.com/nulige/p/6026836.html
Copyright © 2011-2022 走看看