<del id="d4fwx"><form id="d4fwx"></form></del>
      <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

            <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
          • Python中Pythonic怎么寫-創(chuàng)新互聯(lián)

            這篇文章主要為大家展示了“Python中Pythonic怎么寫”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Python中Pythonic怎么寫”這篇文章吧。

            創(chuàng)新互聯(lián)建站基于成都重慶香港及美國等地區(qū)分布式IDC機(jī)房數(shù)據(jù)中心構(gòu)建的電信大帶寬,聯(lián)通大帶寬,移動(dòng)大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)成都移動(dòng)服務(wù)器托管報(bào)價(jià),主機(jī)托管價(jià)格性價(jià)比高,為金融證券行業(yè)服務(wù)器托管,ai人工智能服務(wù)器托管提供bgp線路100M獨(dú)享,G口帶寬及機(jī)柜租用的專業(yè)成都idc公司。

            1、鏈?zhǔn)奖容^操作

            age = 18
            if age > 18 and age < 60:
            print("young man")

            pythonic

            if 18 < age < 60:
            print("young man")

            理解了鏈?zhǔn)奖容^操作,那么你應(yīng)該知道為什么下面這行代碼輸出的結(jié)果是 False。

            >>> False == False == True 
            False

            2、if/else 三目運(yùn)算

            if gender == 'male':
            text = '男'
            else:
            text = '女'

            pythonic

            text = '男' if gender == 'male' else '女'

            在類C的語言中都支持三目運(yùn)算 b?x:y,Python之禪有這樣一句話:

            “There should be one-- and preferably only one --obvious way to do it. ”。

            能夠用 if/else 清晰表達(dá)邏輯時(shí),就沒必要再額外新增一種方式來實(shí)現(xiàn)。

            3、真值判斷

            檢查某個(gè)對(duì)象是否為真值時(shí),還顯示地與 True 和 False 做比較就顯得多此一舉,不專業(yè)

            if attr == True:
            do_something()
            if len(values) != 0: # 判斷列表是否為空
            do_something()

            pythonic

            if attr:
            do_something()
            if values:
            do_something()

            真假值對(duì)照表:

            類型 False True

            布爾 False (與0等價(jià)) True (與1等價(jià))

            字符串 ""( 空字符串) 非空字符串,例如 " ", "blog"

            數(shù)值 0, 0.0 非0的數(shù)值,例如:1, 0.1, -1, 2

            容器 [], (), 至少有一個(gè)元素的容器對(duì)象,例如:[0], (None,), ['']

            None None 非None對(duì)象

            4、for/else語句

            for else 是 Python 中特有的語法格式,else 中的代碼在 for 循環(huán)遍歷完所有元素之后執(zhí)行。

            flagfound = False
            for i in mylist:
            if i == theflag:
            flagfound = True
            break
            process(i)
            if not flagfound:
            raise ValueError("List argument missing terminal flag.")

            pythonic

            for i in mylist:
            if i == theflag:
            break
            process(i)
            else:
            raise ValueError("List argument missing terminal flag.")

            5、字符串格式化

            s1 = "foofish.net"
            s2 = "vttalk"
            s3 = "welcome to %s and following %s" % (s1, s2)

            pythonic

            s3 = "welcome to {blog} and following {wechat}".format(blog="foofish.net", wechat="vttalk")

            很難說用 format 比用 %s 的代碼量少,但是 format 更易于理解。

            “Explicit is better than implicit --- Zen of Python”

            6、列表切片

            獲取列表中的部分元素最先想到的就是用 for 循環(huán)根據(jù)條件提取元素,這也是其它語言中慣用的手段,而在 Python 中還有強(qiáng)大的切片功能。

            items = range(10)
            # 奇數(shù)
            odd_items = []
            for i in items:
            if i % 2 != 0:
            odd_items.append(i)
            # 拷貝
            copy_items = []
            for i in items:
            copy_items.append(i)

            pythonic

            # 第1到第4個(gè)元素的范圍區(qū)間
            sub_items = items[1:4]
            # 奇數(shù)
            odd_items = items[1::2]
            #拷貝
            copy_items = items[::] 或者 items[:]

            列表元素的下標(biāo)不僅可以用正數(shù)表示,還是用負(fù)數(shù)表示,最后一個(gè)元素的位置是 -1,從右往左,依次遞減。

            --------------------------
            | P | y | t | h | o | n |
            --------------------------
             0 1 2 3 4 5 
             -6 -5 -4 -3 -2 -1
            --------------------------

            7、善用生成器

            def fib(n):
            a, b = 0, 1
            result = []
            while b < n:
            result.append(b)
            a, b = b, a+b
            return result

            pythonic

            def fib(n):
            a, b = 0, 1
            while a < n:
            yield a
            a, b = b, a + b

            上面是用生成器生成費(fèi)波那契數(shù)列。生成器的好處就是無需一次性把所有元素加載到內(nèi)存,只有迭代獲取元素時(shí)才返回該元素,而列表是預(yù)先一次性把全部元素加載到了內(nèi)存。此外用 yield 代碼看起來更清晰。

            8、獲取字典元素

            d = {'name': 'foo'}
            if d.has_key('name'):
            print(d['name'])
            else:
            print('unkonw')

            pythonic

            d.get("name", "unknow")

            9、預(yù)設(shè)字典默認(rèn)值

            通過 key 分組的時(shí)候,不得不每次檢查 key 是否已經(jīng)存在于字典中。

            data = [('foo', 10), ('bar', 20), ('foo', 39), ('bar', 49)]
            groups = {}
            for (key, value) in data:
            if key in groups:
            groups[key].append(value)
            else:
            groups[key] = [value]

            pythonic

            # 第一種方式
            groups = {}
            for (key, value) in data:
            groups.setdefault(key, []).append(value)
            
            # 第二種方式
            from collections import defaultdict
            groups = defaultdict(list)
            for (key, value) in data:
            groups[key].append(value)

            10、字典推導(dǎo)式

            在python2.7之前,構(gòu)建字典對(duì)象一般使用下面這種方式,可讀性非常差

            numbers = [1,2,3]
            my_dict = dict([(number,number*2) for number in numbers])
            print(my_dict) # {1: 2, 2: 4, 3: 6}

            pythonic

            numbers = [1, 2, 3]
            my_dict = {number: number * 2 for number in numbers}
            print(my_dict) # {1: 2, 2: 4, 3: 6}
            
            # 還可以指定過濾條件
            my_dict = {number: number * 2 for number in numbers if number > 1}
            print(my_dict) # {2: 4, 3: 6}

            字典推導(dǎo)式是python2.7新增的特性,可讀性增強(qiáng)了很多,類似的還是列表推導(dǎo)式和集合推導(dǎo)式。

            以上是“Python中Pythonic怎么寫”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

            網(wǎng)站題目:Python中Pythonic怎么寫-創(chuàng)新互聯(lián)
            路徑分享:http://www.jbt999.com/article14/gedde.html

            成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站設(shè)計(jì)微信小程序、網(wǎng)站導(dǎo)航、做網(wǎng)站、營銷型網(wǎng)站建設(shè)

            廣告

            聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

            小程序開發(fā)

              <del id="d4fwx"><form id="d4fwx"></form></del>
              <del id="d4fwx"><form id="d4fwx"></form></del><del id="d4fwx"><form id="d4fwx"></form></del>

                    <code id="d4fwx"><abbr id="d4fwx"></abbr></code>
                  • 日韩一级一级CC | 无码AV大香线蕉伊人 | 操逼图片视频 | 久青草中文在线观看 | 国产精品69毛片高清亚洲 |