簡體   English   中英

用另一個列表中的元素隨機替換列表中的某些元素,python

[英]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.choiceB隨機選擇一個元素用作[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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM