有沒有辦法在列表中選擇一個項目的位置,然后例如翻轉(zhuǎn)位pop = ['1010101', '1000101','1001001','1010101,'110001']然后在列表中的每組項目中隨機選擇一個位置并將該位翻轉(zhuǎn)為 0 到 1 或 1 到 0因此,例如,它將遍歷列表中的每個項目并在每個項目中選擇隨機位置,1010101 將變成 1000101,第二個項目將變成 1000101、1011001 等。
1 回答

慕慕森
TA貢獻1856條經(jīng)驗 獲得超17個贊
您可以使用random.choice:
import random
random.seed(42)
def flip(s):
pos = random.choice(range(len(s)))
r = list(s)
r[pos] = '1' if r[pos] == '0' else '0'
return ''.join(r)
pop = ['1010101', '1000101', '1001001', '1010101', '110001']
result = [flip(s) for s in pop]
print(result)
輸出
['1010111', '0000101', '0001001', '1010111', '111001']
一切都在flip函數(shù)內(nèi)部通過3 個主要步驟完成。
選擇隨機位置:pos = random.choice(range(len(s)))。
改變位置的位。
r = list(s)
r[pos] = '1' if r[pos] == '0' else '0'
最后由返回一個新字符串連接的元素r,return ''.join(r)。
添加回答
舉報
0/150
提交
取消