python 如何检查字符是否在另一个字符之后

0aydgbwb  于 2022-12-10  发布在  Python
关注(0)|答案(3)|浏览(174)

假设我有一个字符串y ='rtgxpsa',如果字符串中有字符'x',则函数必须在字符'p'或'z'之后才能返回True,如果字符串后面有任何其他字符,则返回False。
我找不到任何这样的例子,但我确实试过了

def find(word)
for i in word:
      if i == 'x' and i+1 == 'p' or i+1 == 'z':
        return True 
      else:
        return False

print(def('rtgxpsa'))

任何帮助将不胜感激!如果你需要更多的细节,不要犹豫,问!

qyswt5oh

qyswt5oh1#

您的函数应如下所示

def find(word):
  for i, current_letter in enumerate(word):
    if current_letter == 'x' and (word[i+1] == 'p' or word[i+1]== 'z'):
      return True 
  return False

print(find('rtgxpsa'))

enumerate(word)返回一个生成器,该生成器具有索引和当前值的元组
尽管如此,您的算法可以采用不同的方法,以使其更加简洁

def find(word):
    return "xp" in word or "xz" in word
agyaoht7

agyaoht72#

有一个in操作符可以检查字符串中的字符串,这样你就可以同时检查两个字符的组合。

def find(word):
    return "xp" in word or "xz" in word
ncecgwcz

ncecgwcz3#

使用正则表达式,这可以在灵活性和效率之间取得很好的折衷:

import re

if re.search(r'x[pz]', word):
    # do something

作为函数:

def find(word):
    return bool(re.search(r'x[pz]', word))

相关问题