zoukankan      html  css  js  c++  java
  • Python学习笔记——集合

    1. 定义

    num = {}
    print(type(num))
    num2 = {1,2,3,4,5}
    print(type(num2))
    
    <class 'dict'>
    <class 'set'>
    

    集合的数据是唯一的

    # 会自动去除重复数据
    num2 = {1,2,3,4,5,5,3,2}
    print(num2)
    
    {1, 2, 3, 4, 5}
    

    集合的数据是无序的

    # 以下表达会报错
    num2[2]
    
    ---------------------------------------------------------------------------
    
    TypeError                                 Traceback (most recent call last)
    
    <ipython-input-4-87e68eb3c3c4> in <module>()
    ----> 1 num2[2]
    
    TypeError: 'set' object does not support indexing
    

    2. set()

    # set函数可以传进一个列表、元组、字符串
    set1 = set([1,2,3,4,5,5])
    print(set1)
    
    {1, 2, 3, 4, 5}
    

    去除列表[0,1,2,3,4,5,5,3,1]中重复的元素

    # 利用for循环
    num3 = [1,2,3,4,5,5,3,1,0]
    temp = []
    for each in num3:
        if each not in temp:
            temp.append(each)
    print(temp)
    
    [1, 2, 3, 4, 5, 0]
    
    # 利用set函数,但是要注意,使用set可能会改变元素在集合中的位置,如num3中的0
    num3 = list(set(num3))
    print(num3)
    
    [0, 1, 2, 3, 4, 5]
    

    3. 集合的相关操作

    # in 和 not in
    print(6 in set1)
    print(6 not in set1)
    
    False
    True
    
    # add() 和 remove()
    set2 = set([1,2,3,4,5,5])
    set2.add(6)
    print(set2)
    set2.remove(5)
    print(set2)
    
    {1, 2, 3, 4, 5, 6}
    {1, 2, 3, 4, 6}
    

    4. frozenset

    # 定义一个不可变的集合,此时集合不可更改,否则会报错
    set3 = frozenset([1,2,3,4,5])
    set3.add(0)
    
    ---------------------------------------------------------------------------
    
    AttributeError                            Traceback (most recent call last)
    
    <ipython-input-32-d6bbd56c6855> in <module>()
          1 # 定义一个不可变的集合
          2 set3 = frozenset([1,2,3,4,5])
    ----> 3 set3.add(0)
    
    AttributeError: 'frozenset' object has no attribute 'add'
    
  • 相关阅读:
    uva 147 Dollars
    hdu 2069 Coin Change(完全背包)
    hdu 1708 Fibonacci String
    hdu 1568 Fibonacci
    hdu 1316 How Many Fibs?
    poj 1958 Strange Towers of Hanoi
    poj 3601Tower of Hanoi
    poj 3572 Hanoi Tower
    poj 1920 Towers of Hanoi
    筛选法——素数打表
  • 原文地址:https://www.cnblogs.com/nigream/p/11251126.html
Copyright © 2011-2022 走看看