<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### tuple(元組) 另一種有序列表叫元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改,tuple屬于不可變對象。比如同樣是列出同學的名字: ~~~ >>> classmates = ('Michael', 'Bob', 'Tracy') ~~~ 現在,classmates這個tuple不能變了,它也沒有append(),insert()這樣的方法。其他獲取元素的方法和list是一樣的,你可以正常地使用`classmates[0]`,`classmates[-1]`,但不能賦值成另外的元素。 不可變的tuple有什么意義?因為tuple不可變,所以代碼更安全。如果可能,能用tuple代替list就盡量用tuple。 **只有1個元素的tuple定義時必須加一個逗號**,**,以消除與數學表達式的歧義。 ~~~ >>> t = (1,)#not (1) >>> t (1,) ~~~ **最后來看一個“可變的”tuple:** ~~~ <span style="font-size:10px;">>>> t = ('a', 'b', ['A', 'B']) >>> t[2][0] = 'X' >>> t[2][1] = 'Y' >>> t ('a', 'b', ['X', 'Y'])</span> ~~~ 這個tuple定義的時候有3個元素,分別是`'a'`,`'b'`和一個list。不是說tuple一旦定義后就不可變了嗎?怎么后來又變了? 別急,我們先看看定義的時候tuple包含的3個元素: ? ? ? ? ? ? ? ? ? ??當我們把list的元素`'A'`和`'B'`修改為`'X'`和`'Y'`后,tuple變為: ![](https://box.kancloud.cn/144f9f0de687d8d587e9bf97da0d0a37_281x238.jpg) ? ? ? ? ? ? ? ? ? ? ? ? ?![](https://box.kancloud.cn/a75f71fcd0a831baecac1249d327fb43_280x228.jpg) 表面上看,tuple的元素確實變了,但其實變的不是tuple的元素,而是list的元素。tuple一開始指向的list并沒有改成別的list,所以,**tuple所謂的“不變”是說,tuple的每個元素,指向永遠不變。**即指向`'a'`,就不能改成指向`'b'`,指向一個list,就不能改成指向其他對象,但指向的這個list本身是可變的! 理解了“指向不變”后,要創建一個內容也不變的tuple怎么做?那就必須保證tuple的每一個元素本身也不能變。 ### set(集合) set可以看成數學意義上的無序和無重復元素的集合。 ~~~ >>> s = set([1, 1, 2, 2, 3, 3]) >>> s set([1, 2, 3]) ~~~ set操作結合: 通過`add(key)`方法可以添加元素到set中,可以重復添加,但不會有效果: ~~~ >>> s.add(4) >>> s set([1, 2, 3, 4]) >>> s.add(4) >>> s set([1, 2, 3, 4]) ~~~ 通過`remove(key)`方法可以刪除元素: ~~~ >>> s.remove(4) >>> s set([1, 2, 3]) ~~~ 兩個set可以做數學意義上的交集、并集等操作: ~~~ >>> s1 = set([1, 2, 3]) >>> s2 = set([2, 3, 4]) >>> s1 & s2 set([2, 3]) >>> s1 | s2 set([1, 2, 3, 4]) ~~~ **set和dict的唯一區別僅在于沒有存儲對應的value,但是,set的原理和dict一樣,所以,同樣不可以放入可變對象**,因為無法判斷兩個可變對象是否相等,也就無法保證set內部“不會有重復元素”。試試把list放入set,看看是否會報錯。
                  <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>

                              哎呀哎呀视频在线观看