【问题标题】:How could I compare a string to a set of other strings [duplicate]我如何将一个字符串与一组其他字符串进行比较[重复]
【发布时间】:2018-09-02 15:24:51
【问题描述】:

所以我有一个 if 语句,它应该将字符串与以下字符串之一进行比较:“J”、“O”、“J_1”、“Z” 我需要 if 语句来检查字符串是否与其中之一匹配。 我可以使用 else if 来做到这一点,但这会违反 DRY(不要重复自己)的概念。 那么你知道这是否可以通过其他方式完成,而不是 else if?

【问题讨论】:

  • “匹配”是什么意思?
  • 如果给定的字符串等于 4 个之一。

标签: python string python-3.x if-statement string-comparison


【解决方案1】:

使用in 运算符:

if string in ["J", "O", "J_1", "Z"]:
    print("Winner!")

【讨论】:

  • 最好使用set: if string_ in {"J", "O", "J_1", "Z"}
  • 也许可以,但不是为了在这么小的团队中提高效率。 Ipython 的%timeit 表示两者相差在 0.02 µs 以内。
  • 有趣的是,如果您将listset 的构造排除在外,则集合查找会快得多。使用预先构建的集合所花费的时间是预先构建的列表所花费时间的 65%。
  • 我之前做错了数学。我的 PC 上的差异不是 0.02µs,而是 0.0008µs。
  • 对于一个列表,集合查找是 O(1) 与 O(n)。对于这么小的名单显然没什么大不了的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 2021-06-06
  • 2013-05-06
  • 1970-01-01
  • 1970-01-01
  • 2016-08-29
  • 1970-01-01
相关资源
最近更新 更多