如何在字符串python中反转两个字符

如何在字符串python中反转两个字符,python,string,loops,Python,String,Loops,我想知道如何反转字符串中的两个字符。 以下是一些例子: ‘wing’=>‘iwng’、‘inwg’、‘ingw’ “西部”=>“ewst”、“eswt”、“estw” 我打算使用给出的任何答案,并将其放入while循环中,这样我就可以在一次交换两个字符时获得字符串的所有可能组合。 前 计数器=0 while (counter <= len(str1)): if str1 == reverse(str2): return str2 elif str1 == str

我想知道如何反转字符串中的两个字符。 以下是一些例子:

‘wing’=>‘iwng’、‘inwg’、‘ingw’

“西部”=>“ewst”、“eswt”、“estw”

我打算使用给出的任何答案,并将其放入while循环中,这样我就可以在一次交换两个字符时获得字符串的所有可能组合。 前

计数器=0

while (counter <= len(str1)):
    if str1 == reverse(str2):
      return str2
    elif str1 == str2
       return str2
    else:
      str1 = *some code that would swap the the characters m and n*
      str1 =  
      n += 1
      m += 1
return False
while(计数器尝试以下操作:

s = 'wing'
s = 'west'
l = [x for x in s]
for i in xrange(len(s)-1):
    l[i], l[i+1] = l[i+1], l[i]
    print "".join(l)
试试这个:

s = 'wing'
s = 'west'
l = [x for x in s]
for i in xrange(len(s)-1):
    l[i], l[i+1] = l[i+1], l[i]
    print "".join(l)

为了产生所有可能性,我们可以使用:

s = "yourstring"
for i in range(0,len(s)-2):
    if i>0: print s[:i]+s[i+1:i-1:-1]+s[i+2:]
    else: print s[1]+s[0]+s[2:]

为了产生所有可能性,我们可以使用:

s = "yourstring"
for i in range(0,len(s)-2):
    if i>0: print s[:i]+s[i+1:i-1:-1]+s[i+2:]
    else: print s[1]+s[0]+s[2:]

由于您希望实际比较两个字符串,以查看它们是否“通过交换两个字符而相同”,因此实际上不需要生成所有可能的组合,而是可以遍历每个字符串中的每个字符,并确保其中不相等的字符不超过两个

这可以通过以下方式完成:

def twoCharactersDifferent(str1,str2):
    if sorted(str1) != sorted(str2): #they must contain the same letters, exactly!
        return False    
    numDifferent = 0    
    for i in range(len(str1)):

        numDifferent += (str1[i] != str2[i])
        if numDifferent >2:
            return False
    return True

print twoCharactersDifferent('wings','winxg')

由于您希望实际比较两个字符串,以查看它们是否“通过交换两个字符而相同”,因此实际上不需要生成所有可能的组合,而是可以遍历每个字符串中的每个字符,并确保其中不相等的字符不超过两个

这可以通过以下方式完成:

def twoCharactersDifferent(str1,str2):
    if sorted(str1) != sorted(str2): #they must contain the same letters, exactly!
        return False    
    numDifferent = 0    
    for i in range(len(str1)):

        numDifferent += (str1[i] != str2[i])
        if numDifferent >2:
            return False
    return True

print twoCharactersDifferent('wings','winxg')

通过交换两个字符,你是如何从
west
eswt
的?定义“swap”。这是家庭作业吗?你在遍历字符串时并排交换了两个字符。所以交换[0]和[1],然后交换[1][2],然后交换[2][3],等等。通过交换两个字符,你是如何从
west
eswt
的?定义“swap”。这是家庭作业吗?你在遍历字符串时并排交换两个字符。所以交换[0]和[1],然后交换[1][2],然后交换[2][3]等等。好吧,太棒了!这太棒了!我不需要打印它,我只需要每个循环迭代的结果,我只需要将“”。join(l)附加到一个本地定义的变量?它只是
l=list(s)
,不需要列表理解。好吧,太棒了!这太棒了!我不需要打印它,我只需要每个循环迭代的结果,我只需要将“”join(l)附加到本地定义的变量?它只是
l=list(s)
,不需要列表理解。