python - 在Python中比较字符串

标签 python string-comparison

def find_last(search, target):
    for index, character in reversed(list(enumerate(search))):
        if character in target:
            return index
        else:
            return -1

suppose search="aaaaa" and target="aa", output should=3, not 4. I am trying to get the last position where the two strings compare

最佳答案

当前您正在做的是以相反顺序比较 search 字符串中的每个字符,并查看它是否在 target 中。如果是,您就会过早地返回错误的索引。

相反,我建议使用 str.rfind方法:

>>> 'aaaaa'.rfind('aa')
3

str.rfind 基本上与 str.index 方法相同,只不过它从大海捞针的右侧搜索第一根针。

编辑:为了将空针视为存在于最右侧索引处,您可以使用以下返回表达式:

def find_last(search, target):
        return target and search.rfind(target) or len(search)

关于python - 在Python中比较字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29484029/

相关文章:

python - 两个带有字符串的列表的相似度分数

php - stripos 在数字比较时返回 false

c# - 有没有办法在 string.contains() 方法中评估多个字符串?

python - Pandas :DataFrame.fillna 但仅来自同一天

mysql 如何比较字符串并返回两个字符串之间的行

python - 使用命名空间获取 lxml 标签属性

python - 在 scikit-learn ML 算法中使用 float64 数据类型是否正确?

java - 比较作者类中两个作者对象的方法

python - 将曲线拟合到直方图并提取函数形式 - Python

python - 如何从具有相同标签的列的数据框中删除列?