在python

时间:2016-06-17 08:59:51

标签: python random

我需要在字符串(x)中使用其他不同的字符串(y)中的其他两个随机字符更改2个随机字符(或更多),使用Python,示例字符串:

x = 'ABCDEF'
y = 'GHIJK'

可能的解决方案是:

  

z = AB I D G F

     

     

Z = A ķ CDE的ħ

所有更改完全随机。 任何帮助深表感谢。谢谢!

2 个答案:

答案 0 :(得分:1)

这是实施。

代码

import random 
def swap_charcter(x,y):
    x_list = list(x)
    for i in random.sample(range(len(x_list)),2):
        x_list[i] = random.choice(y)
    return ''.join(x_list)

<强>结果

In [1]: swap_charcter('ABCDEF','GHIJK')
Out[1]: 'ABIDEI'
In [2]: swap_charcter('ABCDEF','GHIJK')
Out[2]: 'ABCDHJ'
In [3]: swap_charcter('ABCDEF','GHIJK')
Out[3]: 'ABCDHI'
In [4]: swap_charcter('ABCDEF','GHIJK')
Out[4]: 'ABCIGF'

解释

  1. x_list = list(x)这个用于分配变量。我的意思是替换y字符串元素。字符串不支持索引明智的赋值。
  2. random.sample(range(len(x_list)),2)此行用于获取字符串x的2个随机位置。
  3. random.choice(y)它会在字符串中给出一个元素。
  4. ''.join(x_list)并将列表添加到结果字符串中。

答案 1 :(得分:0)

使用chainsample

from itertools import chain
from random import sample

x="ABCDEF"
y="ZYXWVU"

to_replace=3
print("".join(chain(sample(x,to_replace),sample(y,len(y)-to_replace))))
>>>FDAWXY