用于检查所有字符串是否相互不相交的 Python 程序
字符串是一种数据结构,它保存用双引号或单引号括起来的数据,即引号内的任何数据类型都被视为字符串。它是不可变的,一旦我们定义了数据,我们就不能更改或修改。在 Python 中,我们有一个名为 str() 的函数,它将任何数据作为输入并返回字符串作为输出。
相互不相交意味着没有两个字符串具有相同的元素。有多种不同的方法来检查所有字符串是否相互不相交。让我们逐一介绍一下。
使用嵌套循环
嵌套循环是一种与循环相关的方法,它在主循环内创建另一个循环。
示例
在此示例中,我们创建嵌套循环来检查字符串中的每个元素,如果字符串相互不相交,则返回 True 输出,否则返回 False 输出。以下是检查字符串是否相互不相交的示例。
def are_disjoint(strings):
for i in range(len(strings)):
for j in range(i + 1, len(strings)):
if set(strings[i]) & set(strings[j]):
return False
return True
my_strings = ["Welcome", "to tutorialspoint", "Happy", "Learning"]
if are_disjoint(my_strings):
print("所有字符串都是相互不相交的。")
else:
print("字符串不是相互不相交的。")
输出
字符串不是相互不相交的。
使用 any() 函数
在 Python 中,我们有一个称为 any() 的函数,如果可迭代对象中的任何元素为 True,则返回 True,否则返回 False,即如果任何元素与另一个字符串中的元素相同,则返回 True,否则返回 False。
示例
在此示例中,我们将字符串作为输入参数传递给 any() 函数,并检查是否有任何字符串相似,然后返回 True 或 False 的输出。
def are_disjoint(strings):
return not any(set(strings[i]) & set(strings[j]) for i in range(len(strings)) for j in range(i + 1, len(strings)))
my_strings = ["hello", "world", "python"]
if are_disjoint(my_strings):
print("所有字符串都是相互不相交的。")
else:
print("字符串不是相互不相交的。")
输出
字符串不是相互不相交的。
使用 all() 函数
python 中可用的另一个函数是 all() 函数,如果所有可迭代项都为 True,则返回 True,否则返回 False。
示例
在此示例中,我们将遍历字符串并检查每对字符串之间是否有任何共同字符。如果找到共同字符,则函数返回 False,表示字符串不是相互不相交的。如果没有找到共同字符,则函数返回 True。
def are_disjoint(strings):
return all(not set(strings[i]).intersection(*map(set, strings[:i] + strings[i+1:])) for i in range(len(strings)))
my_strings = ["hello", "world", "python"]
if are_disjoint(my_strings):
print("所有字符串都是相互不相交的。")
else:
print("字符串不是相互不相交的。")
输出
字符串不是相互不相交的。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

