<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 每天學點Python之set 集合中包含一系列的元素,在Python中這些元素不需要是相同的類型,且這些元素在集合中是沒有存儲順序的。 ### 集合的賦值 集合的表示方法是花括號,這與字典是一樣的,可以通過括號或構造函數來初始化一個集合,如果傳入的參數有重復,會自動忽略: ~~~ >>> {1,2,"hi",2.23} {2.23, 2, 'hi', 1} >>> set("hello") {'l', 'h', 'e', 'o'} ~~~ > 注:由于集合和字典都用`{}`表示,所以初始化空的集合只能通過`set()`操作,`{}`只是表示一個空的字典 ### 集合的增加 集合元素的增加支持兩種類型,單個元素的增加用add方法,對序列的增加用update方法。add的作用類似列表中的append,而update類似extend方法。update方法可以支持同時傳入多個參數: ~~~ >>> a={1,2} >>> a.update([3,4],[1,2,7]) >>> a {1, 2, 3, 4, 7} >>> a.update("hello") >>> a {1, 2, 3, 4, 7, 'h', 'e', 'l', 'o'} >>> a.add("hello") >>> a {1, 2, 3, 4, 'hello', 7, 'h', 'e', 'l', 'o'} ~~~ > 注:增加已有的元素不會對集合產生影響,也不會拋出異常 ### 集合的刪除 集合刪除單個元素有兩種方法,兩者的區別是在元素不在原集合中時是否會拋出異常,set.discard(x)不會,set.remove(x)會拋出KeyError錯誤: ~~~ >>> a={1,2,3,4} >>> a.discard(1) >>> a {2, 3, 4} >>> a.discard(1) >>> a {2, 3, 4} >>> a.remove(1) Traceback (most recent call last): File "<input>", line 1, in <module> KeyError: 1 ~~~ 集合也支持pop()方法,不過由于集合是無序的,pop返回的結果不能確定,且當集合為空時調用pop會拋出KeyError錯誤,可以調用clear方法來清空集合: ~~~ >>> a={3,"a",2.1,1} >>> a.pop() 1 >>> a.pop() 3 >>> a.clear() >>> a set() >>> a.pop() Traceback (most recent call last): File "<input>", line 1, in <module> KeyError: 'pop from an empty set' ~~~ ### 集合操作 - 并集:set.union(s),也可以用`a|b`計算 - 交集:set.intersection(s),也可以用`a&b`計算 - 差集:set.difference(s),也可以用`a-b`計算 需要注意的是Python提供了一個求對稱差集的方法set.symmetric_difference(s),相當于兩個集合互求差集后再求并集,其實就是返回兩個集合中只出現一次的元素,也可以用`a^b`計算。 ~~~ >>> a={1,2,3,4} >>> b={3,4,5,6} >>> a.symmetric_difference(b) {1, 2, 5, 6} ~~~ set.update(s)操作相當于將兩個集合求并集并賦值給原集合,其他幾種集合操作也提供各自的update版本來改變原集合的值,形式如intersection_update(),也可以支持多參數形式。 ### 包含關系 兩個集合之間一般有三種關系,相交、包含、不相交。在Python中分別用下面的方法判斷: - set.isdisjoint(s):判斷兩個集合是不是不相交 - set.issuperset(s):判斷集合是不是包含其他集合,等同于a>=b - set.issubset(s):判斷集合是不是被其他集合包含,等同于a<=b 如果要真包含關系,就用符號操作`>`和`<`。 ### 不變集合 Python提供了不能改變元素的集合的實現版本,即不能增加或刪除元素,類型名叫frozenset,使用方法如下: ~~~ >>> a = frozenset("hello") >>> a frozenset({'l', 'h', 'e', 'o'}) ~~~ 需要注意的是frozenset仍然可以進行集合操作,只是不能用帶有update的方法。如果要一個有frozenset中的所有元素的普通集合,只需把它當作參數傳入集合的構造函數中即可: ~~~ >>> a = frozenset("hello") >>> a = set(a) >>> a.add(12) >>> a {'l', 12, 'h', 'e', 'o'} ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看