【问题标题】:randomly replacing certain elements in a list with elements from another list, python用另一个列表中的元素随机替换列表中的某些元素,python
【发布时间】:2021-02-19 12:03:09
【问题描述】:

我有两个列表,我希望将 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 个输出。如果代码再次运行,可能会有另一个输出等等。我不太确定如何解决这个问题,因此非常感谢您的帮助。

【问题讨论】:

  • 您是否尝试过使用random 模块从B 中选择要替换的元素?

标签: python list replace


【解决方案1】:
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)

【讨论】:

    【解决方案2】:

    您可以保留[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']]
    

    【讨论】:

      猜你喜欢
      • 2018-02-19
      • 1970-01-01
      • 2018-10-08
      • 2022-01-11
      • 1970-01-01
      • 2012-03-22
      • 2022-10-20
      • 2021-05-19
      • 2016-03-28
      相关资源
      最近更新 更多