Return 如果一个字符串中的所有字符都在另一个字符串中则为真
Return True if all characters in a string are in another string
好吧,对于这个问题,我打算编写一个函数,如果给定字符串仅包含来自另一个给定字符串的字符,则 returns 为 True。因此,如果我输入 "bird" 作为第一个字符串,"irbd" 作为第二个字符串,它将 return 为真,但是如果我使用 "birds" 作为第一个字符串,并且 "irdb" 作为第二个 return False。到目前为止,我的代码如下所示:
def only_uses_letters_from(string1,string2):
"""Takes two strings and returns true if the first string only contains characters also in the second string.
string,string -> string"""
if string1 in string2:
return True
else:
return False
当我尝试 运行 脚本时,如果字符串的顺序完全相同或者我只输入一个字母("bird" 或 "b" 和 "bird" 对比 "bird" 和 "irdb")。
这是 sets 的完美用例。以下代码将解决您的问题:
def only_uses_letters_from(string1, string2):
"""Check if the first string only contains characters also in the second string."""
return set(string1) <= set(string2)
集很好,但不是必需的(并且可能效率较低,具体取决于您的字符串长度)。你也可以简单地做:
s1 = "bird"
s2 = "irbd"
print all(l in s1 for l in s2) # True
请注意,一旦 s2
中的字母在 s1
和 return False
.
中找不到,这将立即停止
好吧,对于这个问题,我打算编写一个函数,如果给定字符串仅包含来自另一个给定字符串的字符,则 returns 为 True。因此,如果我输入 "bird" 作为第一个字符串,"irbd" 作为第二个字符串,它将 return 为真,但是如果我使用 "birds" 作为第一个字符串,并且 "irdb" 作为第二个 return False。到目前为止,我的代码如下所示:
def only_uses_letters_from(string1,string2):
"""Takes two strings and returns true if the first string only contains characters also in the second string.
string,string -> string"""
if string1 in string2:
return True
else:
return False
当我尝试 运行 脚本时,如果字符串的顺序完全相同或者我只输入一个字母("bird" 或 "b" 和 "bird" 对比 "bird" 和 "irdb")。
这是 sets 的完美用例。以下代码将解决您的问题:
def only_uses_letters_from(string1, string2):
"""Check if the first string only contains characters also in the second string."""
return set(string1) <= set(string2)
集很好,但不是必需的(并且可能效率较低,具体取决于您的字符串长度)。你也可以简单地做:
s1 = "bird"
s2 = "irbd"
print all(l in s1 for l in s2) # True
请注意,一旦 s2
中的字母在 s1
和 return False
.