亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python中的條件賦值判斷語句語法

 更新時間:2023年08月11日 11:45:42   作者:Gruce_L、????  
這篇文章主要介紹了python條件賦值判斷語句語法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

python條件賦值判斷語句語法

if - elif - else 語句

如果是普通的三元,if else正常的語句看起來會有些冗余,所以下面有三種寫法:

1、c = [a, b] [a > b]?

如果a > b為false, 那么就輸出a,否則就輸出b

2、天平式寫法

c = a if a > b else b

如果a > b 為真,則輸出a,否則輸出b

eg:

summary = content[:100] if item[‘is_html'] else “”

3、賦值語句類似于條件判斷語句

(c = a > b and [a] for [b])[0]?

a為假的時候,會輸出b,當(dāng)把a變成列表形態(tài)[a]時候,可以排除例外,就是當(dāng)列表怨怒為空時

eg:

summary = item[‘is_html'] and content[:100] or “”

python條件賦值問題

有條件賦值語句

假設(shè)有列表 buf = [[1], [2], [5], None, [], [7], ()] ,求buf內(nèi)的數(shù)的和

這樣有三種解決辦法

sum_buf = 0
for i in buf:
    if i is not None:
        sum_buf += i[0]
sum_buf = 0:
    for i in buf:
        sum_buf += i[0] if i else 0
sum_buf = sum([i[0] for i in buf if i])

顯然第三種用列表推導(dǎo)是最簡潔的,但不適用于循環(huán)體內(nèi)操作過于復(fù)雜的情況。

這時候第二種帶if語句的賦值就更有效,既增加了程序的可讀性又沒有獨立于循環(huán)體外增加復(fù)雜度

帶if語句的賦值

最有代表性的應(yīng)用場景是做對象操作而不確定變量名是否貼在目標(biāo)對象上的時候,比如上例中的 None 、 [] 、 () 都是不能做索引操作的

None 、空列表、空元組、空字符串、0的bool值都是False,類通過支持 __bool__ 方法就可以使類支持bool運算;從而支持if、while、and等語句

buf = []
a = buf.pop() if buf else 0
# 這里a=0
# 做buf.pop()操作前先進(jìn)行if判斷

實際對比

做完leetcode(2)題,在解題里看到的這種賦值方式,用基本相同的思路,如果用這種方式,可讀性和效率會有質(zhì)的飛躍

不用:

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution(object):
    def addTwoNumbers(self, l1, l2):
        """
        :type l1: ListNode
        :type l2: ListNode
        :rtype: ListNode
        """
        flag = False
        res = ListNode(0)
        _res = res
        while True:
            if l1 is None and l2 is None:
                if flag is 0:
                    p.next = None
                else:
                    _res.val += flag
                return res
            elif l1 is None:
                val, flag = self.__add(l2.val, flag)
                _res.val += val
                _res.next = ListNode(0)
                p = _res
                _res, l2 = _res.next, l2.next
            elif l2 is None:
                val, flag = self.__add(l1.val, flag)
                _res.val += val
                _res.next = ListNode(0)
                p = _res
                _res, l1 = _res.next, l1.next
            else:
                val, flag = self.__add(l1.val, l2.val, flag)
                _res.val += val
                _res.next = ListNode(0)
                p = _res
                _res, l1, l2 = _res.next, l1.next, l2.next
    def __add(self, *args):
        add = sum(args)
        carry = add//10
        return add-10*carry, carry

用帶if語句的賦值:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
        dummy = p = ListNode(None)
        s = 0
        while l1 or l2 or s:
            s += (l1.val if l1 else 0) + (l2.val if l2 else 0)
            p.next = ListNode(s % 10)
            p = p.next
            s //= 10
            l1 = l1.next if l1 else None
            l2 = l2.next if l2 else None
        return dummy.next

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Django和Flask獲取訪問來源referrer

    使用Django和Flask獲取訪問來源referrer

    這篇文章主要介紹了使用Django和Flask獲取訪問來源referrer,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • Bottle框架中的裝飾器類和描述符應(yīng)用詳解

    Bottle框架中的裝飾器類和描述符應(yīng)用詳解

    這篇文章主要介紹了Bottle框架中的裝飾器類和描述符應(yīng)用詳解,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • Python實現(xiàn)密鑰密碼(加解密)實例詳解

    Python實現(xiàn)密鑰密碼(加解密)實例詳解

    這篇文章主要介紹了Python實現(xiàn)密鑰密碼(加解密),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • pandas 實現(xiàn)將兩列中的較大值組成新的一列

    pandas 實現(xiàn)將兩列中的較大值組成新的一列

    這篇文章主要介紹了pandas 實現(xiàn)將兩列中的較大值組成新的一列,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 使用Python制作一盞 3D 花燈喜迎元宵佳節(jié)

    使用Python制作一盞 3D 花燈喜迎元宵佳節(jié)

    這篇文章主要介紹了用Python制作一盞 3D 花燈喜迎元宵佳節(jié),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Python 中如何實現(xiàn)參數(shù)化測試的方法示例

    Python 中如何實現(xiàn)參數(shù)化測試的方法示例

    這篇文章主要介紹了Python 中如何實現(xiàn)參數(shù)化測試的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Python中matplotlib如何改變畫圖的字體

    Python中matplotlib如何改變畫圖的字體

    這篇文章主要介紹了Python中matplotlib如何改變畫圖的字體,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • python使用DrissionPage庫進(jìn)行網(wǎng)頁自動化操作和數(shù)據(jù)提取

    python使用DrissionPage庫進(jìn)行網(wǎng)頁自動化操作和數(shù)據(jù)提取

    隨著自動化測試、數(shù)據(jù)抓取和網(wǎng)頁交互應(yīng)用的日益增多,在眾多的自動化庫中,DrissionPage?作為一個新興的庫,以其簡潔易用和強(qiáng)大的功能受到越來越多開發(fā)者的關(guān)注,本文將介紹如何使用?DrissionPage?進(jìn)行網(wǎng)頁自動化操作和數(shù)據(jù)提取,需要的朋友可以參考下
    2024-11-11
  • Python寫代碼的七條重要技巧介紹

    Python寫代碼的七條重要技巧介紹

    大家好,本篇文章主要講的是Python寫代碼的七條重要技巧介紹,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 一文帶你了解CNN(卷積神經(jīng)網(wǎng)絡(luò))

    一文帶你了解CNN(卷積神經(jīng)網(wǎng)絡(luò))

    CNN是神經(jīng)網(wǎng)絡(luò)中的一種,它的權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)使之更類似于生物神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。本文主要講解了CNN(卷積神經(jīng)網(wǎng)絡(luò))的基礎(chǔ)內(nèi)容,想了解更多的小伙伴可以看一看這篇文章
    2021-09-09

最新評論