[英]Python - Replacing repeating elements in a list with unique elements from another lists
[英]randomly replacing certain elements in a list with elements from another list, python
我有兩個列表,我希望 A 中子列表的特定元素(y 的)被列表 B 中的元素隨機替換。
A=[[x, y], [z, y], [b, y]]
B=[y1, y2]
所以一些可能的輸出看起來像這樣,
A=[[x, y1], [z, y1], [b, y2]]
A=[[x, y2], [z, y2], [b, y2]]
A=[[x, y2], [z, y2], [b, y1]]
但一次只有 1 個輸出。 如果代碼再次運行,可能會有另一個輸出等等。 我不太確定如何解決這個問題,因此感謝您的幫助。
您可以保留[0]
元素,然后使用random.choice
從B
隨機選擇一個元素用作[1]
元素。
import random
def random_replace(A, B):
return [[i[0], random.choice(B)] for i in A]
一些例子
>>> random_replace(A, B)
[['x', 'y2'], ['z', 'y2'], ['b', 'y1']]
>>> random_replace(A, B)
[['x', 'y2'], ['z', 'y1'], ['b', 'y1']]
>>> random_replace(A, B)
[['x', 'y1'], ['z', 'y2'], ['b', 'y2']]
import random
A=[["x", "y"], ["z", "y"], ["b", "y"]]
B=["y1", "y2"]
for elem in A:
i = random.randint(0,1)
elem[1] = B[i]
print(A)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.