Python 如何检查一个字符串中的字母是否以相同的顺序出现在另一个字符串中

Python 如何检查一个字符串中的字母是否以相同的顺序出现在另一个字符串中,python,Python,我想检查一下一篇文章中的字母是否以相同的顺序出现在另一篇文章中 text "Ce" name "Arsenic" Answer False for x in text: if x.lower() not in name.lower(): return False 我希望也检查顺序,以便元素在另一个字符串中以相同的顺序出现:True-else-False 目前,我的代码只检查字母是否也出现在字符串中,而不检查它们的顺序是否相同。基本上,您要检查文本

我想检查一下一篇文章中的字母是否以相同的顺序出现在另一篇文章中

text    "Ce"
name    "Arsenic"
Answer   False


for x in text: 
    if x.lower() not in name.lower():
        return False
我希望也检查顺序,以便元素在另一个字符串中以相同的顺序出现:True-else-False


目前,我的代码只检查字母是否也出现在字符串中,而不检查它们的顺序是否相同。

基本上,您要检查
文本是否包含在
名称中。因此,不要在逐个字符的级别执行此操作(即,如果文本中的所有字符都以名称的形式出现,就像您现在所做的那样),而是在两个字符串上使用
in
操作符来检查
文本
是否在
名称

text    "Ce"
name    "Arsenic"
Answer   False


for x in text: 
    if x.lower() not in name.lower():
        return False
i、 e。
返回name.lower()中的text.lower()


请参见

基本上,您想检查
名称
中是否包含
文本
。因此,不要在逐个字符的级别执行此操作(即,如果文本中的所有字符都以名称的形式出现,就像您现在所做的那样),而是在两个字符串上使用
in
操作符来检查
文本
是否在
名称

i、 e。
返回name.lower()中的text.lower()


请参见

一种方法是避免重复单词的每个字母

if any(text in name for text in text_collection):
    print(text)

这将对照
名称中的字符串检查
文本的整个字符串。这是假设text_集合有多个条目。否则只需使用
(名称中的文本):
请参阅的官方文档。一种方法是避免重复使用单词的每个字母

if any(text in name for text in text_collection):
    print(text)
这将对照
名称中的字符串检查
文本的整个字符串。这是假设text_集合有多个条目。否则只需使用
(名称中的文本):
请参阅的官方文档

text = "Au"
name = "Gold"
text.lower() in name.lower()
False

text = "C"
name = "Carbon"
text.lower() in name.lower()
True
很简单

text = "Au"
name = "Gold"
text.lower() in name.lower()
False

text = "C"
name = "Carbon"
text.lower() in name.lower()
True
我想你的“顺序”是指字符匹配的顺序。在您的示例中,文本“Ce”name应返回False,如果文本为“eC”,则应返回True

首先我们检查所有字符是否都在匹配文本中,如果是,我们进一步检查匹配索引是否有序,否则我们只返回False

def check_text(text, name):
    name_lower = name.lower()
    if all(x in name_lower for x in text.lower()):
        char_index = [name_lower.index(x) for x in text.lower()]
        return char_index == sorted(char_index)
    else:
        return False


>>> check_text("Ce", "Arsenic")
False
>>> check_text("eC", "Arsenic")
True
我想你的“顺序”是指字符匹配的顺序。在您的示例中,文本“Ce”name应返回False,如果文本为“eC”,则应返回True

首先我们检查所有字符是否都在匹配文本中,如果是,我们进一步检查匹配索引是否有序,否则我们只返回False

def check_text(text, name):
    name_lower = name.lower()
    if all(x in name_lower for x in text.lower()):
        char_index = [name_lower.index(x) for x in text.lower()]
        return char_index == sorted(char_index)
    else:
        return False


>>> check_text("Ce", "Arsenic")
False
>>> check_text("eC", "Arsenic")
True

print(name.lower()中的text.lower())#False
关于“订单”你能解释一下你的意思吗?您是指文本的开头和
name
的开头,还是字符串中的另一个位置?
print(name.lower()中的text.lower())#False
关于“顺序”您能解释一下吗?您的意思是文本的开头和
名称的开头,还是字符串中的另一个位置?如果这对您有帮助,请接受此答案作为解决方案。否则,请告诉我您还有哪些问题。如果这对您有所帮助,请接受此答案作为解决方案。否则让我知道你还有什么问题。