【问题标题】:Python: Is there a Walrus Operator for slices of an object?Python:对象切片是否有海象运算符?
【发布时间】:2020-07-24 00:27:39
【问题描述】:

我的问题是,在所有海象示例中,它们都使用整个对象作为布尔值,例如

if (x := len(s)) > 5:
    print(x)

转化

x = len(s)
if x > 5:
    print(x)

如果 x 是一个字符串,有没有办法对 x 切片执行此操作? 例如 x[-1] != ','

这是我希望转换为海象运算符的代码

title = book.find(class_='title').get_text()
if title[-1:] == '\n':
    title = title[:-1]

【问题讨论】:

    标签: python python-3.x refactoring walrus-operator


    【解决方案1】:

    如果这是说明一般问题的示例,我想不出在这种情况下合并海象运算符的方法。但是,在这种特殊情况下,您可以使用以下内容:

    title = book.find(class_='title').get_text().rstrip('\n')
    

    仅当它们存在时才会删除末尾的所有换行符。

    当然,这不适用于更复杂的切片,但如果是这种情况,将变量定义放在不同的行上可能更易读。

    【讨论】:

      猜你喜欢
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      • 2020-02-19
      • 2021-10-22
      • 2017-04-07
      相关资源
      最近更新 更多