我的任务是创建一个函数来交换单词的相邻字母并返回候选单词列表。

时间:2018-03-13 07:14:22

标签: python string python-3.x

这方面的一个例子是“walk”这个词,它会产生一个候选集['awlk','wlak','wakl']。

这就是我目前的情况:

def main():
    word = "jack"
    wordL = len(word)
    listS = []

    for i in range((wordL)-1):
        current = word[i+1]
        word[i+1] = word[i]
        word[i] = current
        listS.append(word)
    print (listS)
main()

我使用“jack”这个词作为测试,应该产生一组候选词。但是,这似乎不起作用。我是python的新手,非常感谢我能得到的任何帮助。

1 个答案:

答案 0 :(得分:2)

由于字符串是不可变的,因此无法更改字符串对象中的字符。要实现您的目标,您可以将字符串更改为列表,在列表中执行任何操作,然后将列表转换回字符串。

word = list("jack") # String is converted to list
wordL = len(word)
listS = []

for i in range((wordL)-1):
    current = word[i+1]
    word[i+1] = word[i]
    word[i] = current
    listS.append("".join(word)) # list is converted to string and appended.
print (listS)

输出:

['ajck', 'acjk', 'ackj']