python - 如何在列表中获取随机项目,并从第二个列表中获取另一个具有第一个选择名称的随机项目
问题描述
我有一个清单"Livros"
,"Livros"
我有("Lucas", "Isaias").
我还有另外两个列表,一个叫“Lucas”,另一个叫“Isaias”
,在Lucas
我有("Lucas1", "Lucas2", "Lucas3")
和Isaias
("Isaias1", "Isaias2", "Isaias3")
"Livros"
所以,我需要在两者"Lucas
和 Isaias之间选择一个随机的”。
例如,如果我选择,("Lucas")
我需要在 Lucas 列表中再抽一个项目。
因此,例如,现在,如果我的选择不适合我 的通话中的"Lucas2"
最后一项dict
"Lucas2"
Lucas2 = {
"1" : "Text1" ,
"2" : "Text2" ,
"3" : "Text3" ,
"4" : "Text4"
}
最后我需要在相应的字典中打印键和值。
我试过一件事,但我在第二次打印时只收到一封信..所以我无法在字典中搜索..有人可以帮助我吗?
我一直在谷歌、论坛等中寻找答案……没有成功
#!/usr/bin/env python3
from random import *
Livros = ["Lucas", "Isaias"]
Lucas = ["Lucas1", "Lucas2"]
Isaias = ["Isaias1", "Isaias2"]
Lucas1 = {
"1" : "Text1" ,
"2" : "Text2" ,
"3" : "Text3" ,
"4" : "Text4"
}
Lucas2 = {
"1" : "Text1" ,
"2" : "Text2" ,
"3" : "Text3" ,
"4" : "Text4"
}
Isaias1 = {
"1" : "Text1" ,
"2" : "Text2" ,
"3" : "Text3" ,
"4" : "Text4"
}
Isaias2 = {
"1" : "Text1" ,
"2" : "Text2" ,
"3" : "Text3" ,
"4" : "Text4"
}
x = choice(Livros)
print(x)
xx = choice(x)
print(xx)```
解决方案
如果您需要打印出键,请使用嵌套字典而不是列表。我敢肯定,最后必须有一种奇特的方式来进行随机选择,递归或其他方式,但这可以按要求工作。
import random
Lucas1 = {
"1" : "Text1" ,
"2" : "Text2" ,
"3" : "Text3" ,
"4" : "Text4"
}
Lucas2 = {
"1" : "Text1" ,
"2" : "Text2" ,
"3" : "Text3" ,
"4" : "Text4"
}
Lucas = {"Lucas1": Lucas1, "Lucas2": Lucas2}
Isaias = {"Isaias1": Isaias1, "Isaias2": Isaias2}
Livros = {"Lucas": Lucas, "Isaias": Isaias}
master_key = random.choice(Livros.keys())
entity_key = random.choice(Livros[master_key].keys())
result_key = random.choice(Livros[master_key][entity_key].keys())
print(result_key, Livros[master_key][entity_key][result_key])
否则,只需将对象嵌套在列表中:
Lucas1 = {
"1" : "Text1" ,
"2" : "Text2" ,
"3" : "Text3" ,
"4" : "Text4"
}
Lucas2 = {
"1" : "Text1" ,
"2" : "Text2" ,
"3" : "Text3" ,
"4" : "Text4"
}
Lucas = [Lucas1, Lucas2, ... ]
Livros = [Lucas, Isaias]
result = random.choice(random.choice(random.choice(Livros)))
再一次,可能是一种更好的使用方式random.choice
,但我目前正在做早餐,需要离开。
推荐阅读
- spring - 将 Spring 2 迁移到 Spring 4.0.3 后控制台中指向类 AbstractPlatformTransactionManager.java 的空指针异常
- linux-kernel - 向同一个源发送 TCP 数据包
- php - 从特定数字重新索引数组
- c++ - 为什么来自构造函数的虚函数调用有时有效,但有时无效?
- php - 如何使用从 ajax 调用序列化的数据
- javascript - JS:好的部分:`superior` 函数
- c++ - 通过 C++ 与 fst 在 R 中将对象写入磁盘
- python - 检查数组中是否有 3 个连续值高于某个阈值
- javascript - PHP websocket 服务器和 JavaScript 连接
- oracle - 如何在 pl/sql 块中使用 2 for 循环选择语句?