推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
JCZ2MkKb5S8ZX9pq
V2EX  ›  Python

Python 把任意非空值转为 True 怎么写最简?

  •  
  •   JCZ2MkKb5S8ZX9pq · Mar 3, 2020 · 6046 views
    This topic created in 2446 days ago, the information mentioned may be changed or developed.
    • 就跟着 if 判断走,所有非空内容转为 True,空内容转为 False。
    a = True if a else False
    
    • 请问怎么写最简?
    22 replies  •  2020-03-11 12:19:46 +08:00
    Trim21
    Trim21
    Mar 3, 2020 via Android❤️1
    1
    bool(a)………
    metamask
    metamask
    Mar 3, 2020
    2
    @Trim21

    有可能会判断错误, 比如
    bool(0)
    laqow
    laqow
    Mar 3, 2020 via Android
    3
    只知道
    try except
    if is null
    14v45mJPBYJW8dT7
    14v45mJPBYJW8dT7
    Mar 3, 2020
    4
    bool(len(a))
    Levi233
    Levi233
    Mar 3, 2020
    5
    @freakxx 如果是 0,你用 if 也是一样的结果啊。。。python 的隐式转换了解一下?
    其实这种情况我们都不转为 true 或 false,直接 if 就行,动态类型语言不要用静态类型语言的思维去开发
    Dvel
    Dvel
    Mar 3, 2020
    6
    a = False if a in ['', (), [], set(), {}] else True
    是这个意思吗?
    mimzy
    mimzy
    Mar 3, 2020
    7
    你的非空值定义是什么? None False '' [] () {} set() range(0) 以外还有么?
    Trim21
    Trim21
    Mar 3, 2020❤️2
    8
    @freakxx #2

    Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> assert bool(0) is False, "bool(0) should be `False`"
    >>> if 0:
    ... pass
    ... else:
    ... print(False)
    ...
    False
    >>>

    错在哪了。。。bool 跟 if 的行为不是一样的吗
    mimzy
    mimzy
    Mar 3, 2020
    9
    @Trim21 #8 他的意思是楼主可能认为 0 属于自己定义的非空值,应该返回 True,而 Python 会返回 False
    qmpz02
    qmpz02
    Mar 3, 2020 via iPhone
    10
    not not a
    mimzy
    mimzy
    Mar 3, 2020
    11
    @qmpz02 #10 这写法我在 JS 里见过… !!
    metamask
    metamask
    Mar 3, 2020
    12
    @Levi233
    ...黑人问号

    #7 #9 的老哥说明了
    metamask
    metamask
    Mar 3, 2020
    13
    @Trim21

    如果你说的是楼主的 if,那么是没必要的
    我想说的 #7 #9 也说明了

    因为非空值这定义不明确。
    weyou
    weyou
    Mar 3, 2020 via Android
    14
    跟着 if 走,一楼正解,没啥好说的
    SjwNo1
    SjwNo1
    Mar 3, 2020
    15
    a = True if a is not 空 else False (逃
    0ZXYDDu796nVCFxq
    0ZXYDDu796nVCFxq
    Mar 3, 2020
    16
    a = True if format(a) else False

    测试:
    >>> a = False
    >>> True if format(a) else False
    True

    >>> a = None
    >>> True if format(a) else False
    True

    >>> a = 0
    >>> True if format(a) else False
    True

    >>> a = []
    >>> True if format(a) else False
    True

    >>> a = int
    >>> True if format(a) else False
    True
    qmpz02
    qmpz02
    Mar 3, 2020 via iPhone
    17
    @mimzy 哈哈哈哈哈,之前见人写过,也来凑凑热闹( doge
    2DaYe
    2DaYe
    Mar 3, 2020❤️1
    18
    a = a is not None
    leavic
    leavic
    Mar 4, 2020
    19
    a= if a
    lithiumii
    lithiumii
    Mar 4, 2020 via Android
    20
    任意非空值范围太广了吧,包括各种 object 吗?不过感觉我写 pandas 的时候倒是遇到过类似的需求,nan、nat、None 等混一起,这时候会用 pd.isna
    yucongo
    yucongo
    Mar 6, 2020
    21
    not not any_val
    necomancer
    necomancer
    Mar 11, 2020
    22
    a = not not a
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2107 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 08:02 · PVG 16:02 · LAX 00:02 · JFK 03:02
    ♥ Do have faith in what you're doing.