在Python下,如何将一个单词,例如,“hello”,进行变种(mutate)?
伊谢尔伦
伊谢尔伦 2017-04-17 17:23:32
0
2
365

最近通过http://anandology.com/python-practice-book/working-with-data.html上的问题练习Python,做到章节2.6-列表第32个问题的时候,写出了以下代码,是否有更好的代码,可以解决这个问题。原问题如下:

Problem 32: Write a function mutate to compute all words generated by
a single mutation on a given word. A mutation is defined as inserting
a character, deleting a character, replacing a character, or swapping
2 consecutive characters in a string. For simplicity consider only
letters from a to z.

我的代码如下:

#coding:utf-8
def mutate(ori_word):
    result = []
    characters = [chr(w) for w in xrange(97,123)]
    split_word = [w for w in ori_word] #['h', 'e', 'l', 'l', 'o']
    for x in xrange(0,5):
        word = split_word[:]
        word.pop(x)
        result.append(''.join(word)) # delete any one of the character in "hello"
        for c in characters:
            word = split_word[:]
            word[x] = c
            result.append(''.join(word)) # replace any one of the character in "hello" by using a to z
        for y in xrange(0,5):
            word = split_word[:]
            word[x] , word[y] = word[y], word[x]
            result.append(''.join(word)) # swap two character in "hello"
    return result

word = mutate("hello")
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(2)
小葫芦

リスト内包表記をもっと活用する必要があります

for x in xrange(0,5) これらは避けるべきです

split_word = [w for w in ori_word] str

を反復処理するだけなので、少し不必要です。

私の答え:

リーリー
いいねを押す +0
巴扎黑

Zhen・Da Shen の書き方を学びましょう:

スペル修正ツールの書き方

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!