python条件赋值

本文探讨了在Python编程中,如何使用有条件赋值语句来提高代码的可读性和效率。通过比较不同赋值方法,尤其是带if语句的赋值在处理列表和算法问题时的应用,阐述了其在避免额外复杂度和增强可读性方面的优势。在解决LeetCode问题时,使用这种赋值方式可以显著提升解题的可读性和效率。
摘要由CSDN通过智能技术生成

有条件赋值语句

  • 假设有列表buf = [[1], [2], [5], None, [], [7], ()],求buf内的数的和

  • 这样有三种解决办法

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

    显然第三种用列表推导是最简洁的,但不适用于循环体内操作过于复杂的情况。

    这时候第二种带if语句的赋值就更有效,既增加了程序的可读性又没有独立于循环体外增加复杂度

带if语句的赋值

  • 最有代表性的应用场景是做对象操作而不确定变量名是否贴在目标对象上的时候,比如上例中的None[]()都是不能做索引操作的

  • None、空列表、空元组、空字符串、0的bool值都是False,类通过支持__bool__方法就可以使类支持bool运算;从而支持if、while、and等语句

    buf = []
    a = buf.pop() if buf else 0
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值