• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Welcome to 陳俊峰's ---BeetleHeaded Man Blog !

              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
              58 隨筆 :: 32 文章 :: 18 評論 :: 0 Trackbacks
            Python Reading Notes (2006-4-13) ?

            Note One:about list (wow! so powerful)

            Assignment to slices is also possible, and this can even change the size of the list,but you can not do that in the string type:
            >>> # Replace some items:
            ... a[0:2] = [1, 12]
            >>> a
            [1, 12, 123, 1234]
            >>> # Remove some:
            ... a[0:2] = []
            >>> a
            [123, 1234]
            >>> # Insert some:
            ... a[1:1] = ['bletch', 'xyzzy']
            >>> a
            [123, 'bletch', 'xyzzy', 1234]
            >>> a[:0] = a???? # Insert (a copy of) itself at the beginning
            >>> a
            [123, 'bletch', 'xyzzy', 1234, 123, 'bletch', 'xyzzy', 1234]

            It is possible to nest lists (create lists containing other lists), for example:
            >>> q = [2, 3]
            >>> p = [1, q, 4]
            >>> len(p)
            3
            >>> p[1]
            [2, 3]
            >>> p[1][0]
            2
            >>> p[1].append('xtra')????
            >>> p
            [1, [2, 3, 'xtra'], 4]
            >>> q
            [2, 3, 'xtra']


            Note Two : about for statement

            It is not safe to modify the sequence being iterated over in the loop (this can only happen for mutable sequence types, such as lists). If you need to modify the list you are iterating over (for example, to duplicate selected items) you must iterate over a copy. The slice notation makes this particularly convenient:

            valid statements: it will work normally
            >>> for x in a[:]: # make a slice copy of the entire list
            ...?????? if len(x) > 6:?
            ...???????????a.insert(0, x)
            ...
            >>> a
            ['defenestrate', 'cat', 'window', 'defenestrate']

            invalid statement: you prompt will die
            >>> for x in a :? # make a slice copy of the entire list
            ...??? ???if len(x) > 6:
            ...????????? a.insert(0, x)
            ...

            Note that: in the first statement?the first row ,the?for statement?ues 'a[:] ' ,it means that?to make a slice of?it;but in the second statement,the for statement ues 'a' directly ,so cause a?bad?result?

            Note Three: Compare for efficiency

            str_test = []
            #?method one :
            str_test.append('attach')
            #method two:
            str_test = str_test?+ ['attach']

            The?Two?method above has the?same function ,but the more efficient one is the first one
            ?
            Note Four :about Defining Functions?
            Form 1:Default Argument Values
            The default value is evaluated only once.
            def f(a, L=[]):
            ??? L.append(a)
            ??? return L

            print f(1)
            print f(2)
            print f(3)

            This will print

            [1]
            [1, 2]
            [1, 2, 3]
            

            If you don't want the default to be shared between subsequent calls, you can write the function like this instead:

            def f(a, L=None):
                if L is None:
                    L = []
                L.append(a)
                return L

            Form 2 : Keyword Arguments

            When a final formal parameter of the form **name is present, it receives a dictionary containing all keyword arguments except
            for those corresponding to a formal parameter. This may be combined with a formal parameter of the form *name (described in
            the next subsection) which receives a tuple containing the positional arguments beyond the formal parameter list. (*name must
            occur before **name) For example, if we define a function like this:

            def cheeseshop(kind, *arguments, **keywords):
                print "-- Do you have any", kind, '?'
                print "-- I'm sorry, we're all out of", kind
                for arg in arguments: print arg
                print '-'*40
            keys = keywords.keys() keys.sort() for kw in keys: print kw, ':', keywords[kw]

            It could be called like this:

            cheeseshop('Limburger', "It's very runny, sir.",
                       "It's really very, VERY runny, sir.",
                       client='John Cleese',
                       shopkeeper='Michael Palin',
                       sketch='Cheese Shop Sketch')

            and of course it would print:

            -- Do you have any Limburger ?
            -- I'm sorry, we're all out of Limburger
            It's very runny, sir.
            It's really very, VERY runny, sir.
            ----------------------------------------
            client : John Cleese
            shopkeeper : Michael Palin
            sketch : Cheese Shop Sketch

            Note that the sort() method of the list of keyword argument names is called before printing the contents of the keywords
            dictionary; if this is not done, the order in which the arguments are printed is undefined.

            posted on 2006-04-13 10:50 Jeff-Chen 閱讀(156) 評論(0)  編輯 收藏 引用 所屬分類: Python
            91精品国产高清久久久久久91 | 亚洲精品午夜国产VA久久成人| 国产叼嘿久久精品久久| 伊人色综合久久| 婷婷久久五月天| 亚洲精品国产字幕久久不卡| 久久精品国产亚洲AV香蕉| 久久美女人爽女人爽| 一本久久精品一区二区| 久久大香香蕉国产| 亚洲精品tv久久久久久久久久| 久久久久久毛片免费播放| 久久青青草原精品国产软件| 亚洲精品乱码久久久久久自慰| 精品国产综合区久久久久久| 77777亚洲午夜久久多人| 狠狠人妻久久久久久综合蜜桃 | 久久精品国产只有精品66| 少妇无套内谢久久久久| 国产AⅤ精品一区二区三区久久| 国产精品久久新婚兰兰| 久久久人妻精品无码一区| 91久久精一区二区三区大全| 国产69精品久久久久久人妻精品| 久久免费美女视频| 久久国产精品成人片免费| 久久天天躁夜夜躁狠狠| 欧美精品福利视频一区二区三区久久久精品 | 久久国产免费直播| 欧美午夜A∨大片久久| 国产ww久久久久久久久久| 久久99国产亚洲高清观看首页 | 91麻豆精品国产91久久久久久| 亚洲乱码中文字幕久久孕妇黑人| 深夜久久AAAAA级毛片免费看 | 亚洲午夜无码久久久久| 久久性精品| 亚洲精品无码久久久| 亚洲欧洲久久久精品| 久久乐国产综合亚洲精品| 亚洲欧美日韩精品久久亚洲区|