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
关于“顺序”您能解释一下吗?您的意思是文本的开头和名称的开头,还是字符串中的另一个位置?如果这对您有帮助,请接受此答案作为解决方案。否则,请告诉我您还有哪些问题。如果这对您有所帮助,请接受此答案作为解决方案。否则让我知道你还有什么问题。