如何利用python在一个w_在Python下,如何将一个单词,例如,“hello”,进行变种(mutate)?...

最近通过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")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值