我在for(x)in(y)函数中遇到了问题

2024-04-20 09:17:16 发布

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

因此,我目前正在尝试定义一个函数,该函数查看两个字符串,并告诉用户如果一个字符串位于另一个字符串中,则如下所示:

def isIn(x, y):

    for x in y:
        if x == y:
            print "True"
            print "x in y"
        else:
            print "False"

    for y in x:
        if x == y:
            print "True"
            print "y in x"
        else:
            print "False"

isIn('5', '1')

我认为这与for(x)in(y)函数有关,但我可能错了。代码不断出现:

True
x in y
True 
y in x

有没有关于我如何解决这个问题的建议?你知道吗


Tags: 函数字符串代码用户infalsetruefor
3条回答
for x in y:

x这里没有传递给函数的x。同样适用于:

if x == y:

for循环中的x将在y上迭代,并且将是1。然后将其与y进行比较,也就是1。所以,你得到了一个预期的结果:

True
x in y

第二个回路也一样

我觉得你把for ... in和普通的in搞混了

def isIn(x,y):

  if x in y:
    print "True"
    print "x in y"
  else:
    print "False"

  if y in x:
    print "True"
    print "y in x"
  else:
    print "False"

isIn('5','1')

简单点的怎么样?你知道吗

def isIn(x, y):
    return x in y or y in x

如果我们处理的是整个字符串,并且我们想知道其中一个字符串是否是另一个字符串的一部分,那么就不需要遍历它们的每个字符——这只会告诉您两个字符串中是否都有某个字符。你知道吗

现在,如果您真的需要知道两个字符串中是否都有char,那么这样做会很好:

def isIn(x, y):
    return any(c in y for c in x)

相关问题 更多 >