【问题标题】:Python3 index of char on String when not found [duplicate]找不到时字符串上字符的Python3索引[重复]
【发布时间】:2018-12-06 10:10:02
【问题描述】:

正如官方documentation中所说,在Python中调用函数index时的字符串

当在 s 中找不到 x 时,index 会引发 ValueError

我知道我们可以像'c' in String 那样简单地测试字符串中字符的存在,但它使语法有点笨拙。

是否有任何已知的函数 index 实现会返回 -1 或这样的错误代码,而不是引发 Error

【问题讨论】:

  • 该语法被认为是“pythonic”,因为它利用了语言的功能以及编写使用的方式。您可以编写逻辑来做到这一点,但这违背了语言的精神。 (当我试图破坏其他功能并使它们像其他语言一样工作时,我被告知)
  • 您认为in 关键字语法的“尴尬”是什么?它可读,简洁且有效。除此之外,快速浏览一下文档就会告诉你find()
  • @Zinki,笨拙可能有点强,但是假设它使您的代码更长一点,并迫使您检查字符串的内容两次(首先,存在,第二索引发现)。同意你的看法,find() 将完成这项工作

标签: python python-3.6


【解决方案1】:

或者使用默认值为-1的生成器表达式:

print(next((i for i, x in enumerate(string) if x == search_value), -1))

【讨论】:

  • 是的,没错,但我只是想避免在 python 中运行循环。我希望在 C 中找到一个可以调用的函数。
【解决方案2】:

您正在寻找的方法是 str.find - 即使是 str.index 的文档也说除了引发错误之外它的作用相同......

【讨论】:

猜你喜欢
  • 2016-12-02
  • 2013-07-15
  • 1970-01-01
  • 2019-06-03
  • 2016-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-30
相关资源
最近更新 更多