我需要在字符串(x)中使用其他不同的字符串(y)中的其他两个随机字符更改2个随机字符(或更多),使用Python,示例字符串:
x = 'ABCDEF'
y = 'GHIJK'
可能的解决方案是:
z = AB I D G F
或
Z = A ķ CDE的ħ
所有更改完全随机。 任何帮助深表感谢。谢谢!
答案 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'
解释
x_list = list(x)
这个用于分配变量。我的意思是替换y
字符串元素。字符串不支持索引明智的赋值。random.sample(range(len(x_list)),2)
此行用于获取字符串x
的2个随机位置。 random.choice(y)
它会在字符串中给出一个元素。''.join(x_list)
并将列表添加到结果字符串中。 答案 1 :(得分:0)
使用chain
和sample
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