元のリストに置き換えたい要素をランダムに選択するには、numpy.random.choice
を使用します。次に、置換に使用する値に対するインデックスをzip
に置き換え、置換を適用します。
from numpy.random import choice
def swap_elements(x, t):
new_x = x[:]
for idx, value in zip(choice(range(len(x)), size=len(t), replace=False), t_list):
new_x[idx] = value
return new_x
使用例
>>> x_list = ['a', 'b', 'c', 'd', 'e']
>>> t_list = ['z', 'y', 'u']
>>> swap_elements(x_list, t_list)
['y', 'u', 'z', 'd', 'e']
>>> swap_elements(x_list, t_list)
['y', 'b', 'z', 'u', 'e']
>>> swap_elements(x_list, t_list)
['y', 'b', 'z', 'u', 'e']
>>> swap_elements(x_list, t_list)
['a', 'u', 'z', 'y', 'e']
あなたは '、例えば、直接x_listを要素を割り当てることができます[2] = t_list [0] ' – nos
a)' t_list'のすべての要素が新しいリストに含まれていること、そしてb)それらの要素が整っていることは重要ですか? –
あなたはあなたの試行を見せていただけますか?何を試しましたか?何がうまくいかなかったのですか?問題の[mcve]を提供できますか? –