python - 用另一个列表中的元素随机替换列表中的某些元素,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']]
推荐阅读
- kubernetes-helm - 如何将 notes.txt 输出发送到文件而不是将其转储到控制台?
- flutter - 如何解决flutter项目编译Debug Kotlin报错
- vector - 如何迭代借来的选项
> 将 None 视为空迭代器? - c++ - 使用指针更改代码以实现多对多关系
- botframework - 如何获取安装 Teams bot 的团队 ID
- selenium - 使用会话快照的 Codeception 验收测试问题
- arduino - 如何在 Arduino BLE 设备上获取广告数据包的值
- sql - JPA EntityGraph 使用子图制作笛卡尔积
- c# - 使用 Linq 和 Regex 比较 2 个字符串数组以进行部分匹配
- sql-server - SQL 中的 STUFF(... FOR XML) 函数有没有办法防止重复值?