zoukankan      html  css  js  c++  java
  • python 基础之集合

    集合

    s=set('chen xi')
    s1=['cx','ee','cx']
    s2=set(s1)#set为集合
    print(s2,type(s2))
    s=list(s2)
    print(s,type(s))
    

     测试

    D:pythonpython.exe D:/untitled/dir/for.py
    {'cx', 'ee'} <class 'set'>
    ['cx', 'ee'] <class 'list'>
    
    Process finished with exit code 0
    

      集合的创建

    s=set("chenxi cx bhbhbm km")
    print(s)
    

      测试;帮我们去重set

    D:pythonpython.exe D:/untitled/dir/for.py
    {'h', 'k', 'c', 'x', ' ', 'n', 'e', 'm', 'b', 'i'}
    

       注意set必须是不可哈希的值

    li = [[1,2],3,'huhu']
    s= set(li)
    print(s)
    

      测试报错

    D:pythonpython.exe D:/untitled/dir/for.py
    Traceback (most recent call last):
      File "D:/untitled/dir/for.py", line 371, in <module>
        s= set(li)
    TypeError: unhashable type: 'list'
    
    Process finished with exit code 1
    

      判断集合是否包含指定的字符串

    li = [1,2,3,'huhu']
    s= set(li)
    # print(s)
    print(2 in s)
    print(4 in s )
    print('h' in s)
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    True
    False
    False
    
    Process finished with exit code 0
    

      集合更新之添加元素

    li = [1,2,3,'huhu']
    s= set(li)
    # print(s)
    # print(2 in s)
    # print(4 in s )
    # print('h' in s)
    # print('huhu' in s)
    print(s)
    s.add('u')
    print(s)
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    {1, 2, 3, 'huhu'}
    {1, 2, 3, 'huhu', 'u'}
    

      集合更新之添加多个元素

    li = [1,2,3,'huhu']
    s= set(li)
    print(s)
    s.add('u')
    print(s)
    s.update('asdfgh')
    print(s)
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    {1, 2, 3, 'huhu'}
    {1, 2, 3, 'huhu', 'u'}
    {1, 2, 3, 'huhu', 'g', 'h', 'd', 'a', 'u', 'f', 's'}
    

      更新数字字母

    li = [1,2,3,'huhu']
    s= set(li)
    print(s)
    s.add('u')
    print(s)
    s.update('asdfgh')
    print(s)
    s.update([12,'huhbjkjkjkjkjk'])
    print(s)
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    {1, 2, 3, 'huhu'}
    {1, 2, 3, 'huhu', 'u'}
    {1, 2, 3, 'f', 'huhu', 's', 'a', 'd', 'g', 'u', 'h'}
    {1, 2, 3, 'f', 'huhu', 'huhbjkjkjkjkjk', 's', 12, 'a', 'd', 'g', 'u', 'h'}
    

         集合删除指定元素操作

    li = [1,2,3,'huhu']
    s= set(li)
    print(s)
    s.add('u')
    print(s)
    s.update('asdfgh')
    print(s)
    s.update([12,'huhbjkjkjkjkjk'])
    print(s)
    s.remove(12)
    print(s)
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    {1, 2, 3, 'huhu'}
    {1, 2, 3, 'huhu', 'u'}
    {1, 2, 3, 'huhu', 'a', 'd', 's', 'h', 'u', 'g', 'f'}
    {1, 2, 3, 'huhu', 'a', 'd', 's', 'h', 'u', 'g', 12, 'f', 'huhbjkjkjkjkjk'}
    {1, 2, 3, 'huhu', 'a', 'd', 's', 'h', 'u', 'g', 'f', 'huhbjkjkjkjkjk'}
    

      集合之删除随意元素

    li = [1,2,3,'huhu']
    s= set(li)
    print(s)
    s.add('u')
    print(s)
    s.update('asdfgh')
    print(s)
    s.update([12,'huhbjkjkjkjkjk'])
    print(s)
    s.remove(12)
    print(s)
    s.pop()
    print(s)
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    {1, 2, 3, 'huhu'}
    {1, 2, 3, 'u', 'huhu'}
    {1, 2, 3, 'a', 'h', 'd', 'u', 'f', 'huhu', 'g', 's'}
    {1, 2, 3, 'a', 'h', 'd', 12, 'u', 'f', 'huhu', 'huhbjkjkjkjkjk', 'g', 's'}
    {1, 2, 3, 'a', 'h', 'd', 'u', 'f', 'huhu', 'huhbjkjkjkjkjk', 'g', 's'}
    {2, 3, 'a', 'h', 'd', 'u', 'f', 'huhu', 'huhbjkjkjkjkjk', 'g', 's'}
    

      清空集合

    li = [1,2,3,'huhu']
    s= set(li)
    print(s)
    s.add('u')
    print(s)
    s.update('asdfgh')
    print(s)
    s.update([12,'huhbjkjkjkjkjk'])
    print(s)
    s.remove(12)
    print(s)
    s.pop()
    print(s)
    s.clear()
    print(s)

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    {1, 2, 3, 'huhu'}
    {1, 2, 3, 'huhu', 'u'}
    {1, 2, 3, 's', 'f', 'a', 'd', 'g', 'huhu', 'h', 'u'}
    {1, 2, 3, 's', 'f', 'a', 'huhbjkjkjkjkjk', 'd', 'g', 12, 'huhu', 'h', 'u'}
    {1, 2, 3, 's', 'f', 'a', 'huhbjkjkjkjkjk', 'd', 'g', 'huhu', 'h', 'u'}
    {2, 3, 's', 'f', 'a', 'huhbjkjkjkjkjk', 'd', 'g', 'huhu', 'h', 'u'}
    set()
    
    Process finished with exit code 0
    

     删除集合

     

    li = [1,2,3,'huhu']
    s= set(li)
    # print(s)
    # print(2 in s)
    # print(4 in s )
    # print('h' in s)
    # print('huhu' in s)
    print(s)
    s.add('u')
    print(s)
    s.update('asdfgh')
    print(s)
    s.update([12,'huhbjkjkjkjkjk'])
    print(s)
    s.remove(12)
    print(s)
    s.pop()
    print(s)
    s.clear()
    print(s)
    del s
    print(s)
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    Traceback (most recent call last):
    {'huhu', 1, 2, 3}
      File "D:/untitled/dir/for.py", line 391, in <module>
    {1, 2, 3, 'u', 'huhu'}
        print(s)
    {'s', 1, 2, 3, 'a', 'd', 'h', 'u', 'huhu', 'f', 'g'}
    NameError: name 's' is not defined
    {'s', 1, 2, 3, 'a', 'd', 12, 'h', 'u', 'huhu', 'huhbjkjkjkjkjk', 'f', 'g'}
    {'s', 1, 2, 3, 'a', 'd', 'h', 'u', 'huhu', 'huhbjkjkjkjkjk', 'f', 'g'}
    {1, 2, 3, 'a', 'd', 'h', 'u', 'huhu', 'huhbjkjkjkjkjk', 'f', 'g'}
    set()
    
    Process finished with exit code 1
    

      比较两个集合是否相同

    print(set('chenxi')==set('cheeennnxxxi'))
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    True
    
    Process finished with exit code 0
    

      判断第一个集合是否被第二个集合包含;如果完全一样打印

    print(set('chenxi')==set('cheeennnxxxi'))
    print(set('cx')<set('chenxigg'))
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    True
    True
    

      判断第一个集合是否被第二个集合包含;如果完全一样打印

    print(set('chenxi')==set('cheeennnxxxi'))
    print(set('cx')<set('chenxigg'))
    print(set('cx')<set('cx'))
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    True
    True
    False
    
    Process finished with exit code 0
    

      取两个都有的元素

    print(set('yfgfggcgcffxdfx sd f') & set('hhghghg v'))
    

      测试

    {' ', 'g'}
    

      取并集,取两个集合都包括的。只有有一个集合包含的就打印

    print(set('yfgfggcgcffxdfx sd f') | set('hhghghg v'))
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    {' ', 'g'}
    {' ', 'h', 'd', 's', 'g', 'y', 'f', 'c', 'x', 'v'}
    

      取交集的另一给个方法

    s= set('yfgfggcgcffxdfx sd f')
    v= set('hhghghg v')
    print(s.intersection(v))
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    {' ', 'g'}
    
    Process finished with exit code 0
    

      取并集

    s= set('yfgfggcgcffxdfx sd f')
    v= set('hhghghg v')
    print(s.union(v))
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    {'g', 'f', 'c', 'y', 'h', ' ', 'v', 'd', 's', 'x'}
    
    Process finished with exit code 0
    

      取集合里的差集,s里有的v里没有的

    s= set('yfgfggcgcffxdfx sd f')
    v= set('hhghghg v')
    print(s.difference(v))
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    {'s', 'x', 'c', 'y', 'f', 'd'}
    
    Process finished with exit code 0
    

      取集合里的差集,v里有的s里没有

    s= set('yfgfggcgcffxdfx sd f')
    v= set('hhghghg v')
    print(v.difference(s))
    

      测试

    D:pythonpython.exe D:/untitled/dir/for.py
    {'h', 'v'}
    
    Process finished with exit code 0
    

      

      

     

    草都可以从石头缝隙中长出来更可况你呢
  • 相关阅读:
    P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
    P3389 【模板】高斯消元法
    P2260 [清华集训2012]模积和
    【Codevs1237&网络流24题】餐巾计划(费用流)
    【POJ3680】Intervals(费用流)
    【BZOJ1070】修车(费用流)
    【BZOJ1834】network 网络扩容(最大流,费用流)
    【POJ1149&BZOJ1280】PIGS(最大流)
    【BZOJ2127】happiness(最小割)
    【BZOJ3894】文理分科(最小割)
  • 原文地址:https://www.cnblogs.com/rdchenxi/p/11130691.html
Copyright © 2011-2022 走看看