函数sameChars不能正常工作

2024-10-01 00:31:37 发布

您现在位置:Python中文网/ 问答频道 /正文

Takes two strings and returns True if the strings contain the same characters regardless of the number of occurrences or the order in which they occur. Must consider all characters and is case-sensitive (e.g., sameChars("AA","a") returns False, while sameChars("FgFFF","ggFF") returns True.

我的代码是:

def sameChars(s1, s2):
    if s1 <= s1:
        return True
    else:
        return False

如果我输入以下内容,函数将返回true

print sameChars('AA', 'a')

但是它应该返回false。你知道吗


Tags: andofthefalsetruereturnifreturns
3条回答

您正在检查-s1 <= s1。这总是正确的,因为您正在用s1检查s1。你知道吗

即使您用s2检查了s1,我也不认为这能满足您的要求,因为s1 <= s2正在检查s1是否在词典上低于s2。你知道吗

最好的方法是把s1和s2的字符放到一个集合中,然后检查它们是否相等。你知道吗

示例-

def sameChars(s1, s2):
    if set(s1) == set(s2):
        return True
    else:
        return False

或者只返回set(s1) == set(s2)的结果

def sameChars(s1, s2):
    return set(s1) == set(s2)

set - Unordered collections of unique elements

在集合中,元素是唯一的,因为它们不允许重复,而且它们是无序的,所以如果它们有相等的元素,那么这两个集合将是相等的,而不管元素出现的顺序如何。你知道吗

你在操作中说要检查字符串是否包含相同的字符。这是一种方法:

>>> s1 = 'Hello'
>>> s2 = 'lo'
>>> s2 in s1
True
>>> s2 = 'LO'
>>> s2 in s1
False
>>>

首先:

s1 <= s1

永远都是真的。你打错了。你知道吗

一般来说,你的功能就没那么有用了。在任何地方你都可以像sameChars(s1, s2)那样使用它,只需做一个s1 <= s2就可以达到同样的效果。你知道吗

相关问题 更多 >