我试着循环一组列表和听写,从中提取正确的信息, 应该像这样运行:
从音乐中随机获取,如果random是一个列表,那么打印列表,如果列表包含dict print dict
这是我迷茫之前所得到的!请帮帮一个笨蛋!你知道吗
import random
music = ['Band1', 'Band2', 'Band3', 'Band4']
Band1 = ['Album1']
Band2 = ['Album2']
Band3 = ['Album3']
Band4 = ['Album4']
Album1 = {
"01": 'Track1', "02": 'Track2', "03": 'Track3', "04": 'Track4',
"05": 'Track5', "06": 'Track6', "07": 'Track7', "08": 'Track8',
"09": 'Track9', "10": 'Track10', "11": 'Track11'}
i = random.choice(music)
if isinstance(i, list):
print('is instance')
当我调试这个代码时,我得到的是字符串“I”。因此,首先必须使用
globals
函数按名称获取变量。你知道吗此代码可以帮助您:
我建议采用不同的数据结构:
这是一个乐队字典(键:乐队名称),其中每个乐队是一个包含专辑的字典(键:专辑名称),其中每个专辑是一个包含曲目名称的列表(索引:曲目编号-1)。你知道吗
然后我们可以假设我们的数据结构只包含字典、列表和字符串。我们需要一个函数来选择一个随机轨迹,即一个字符串。你知道吗
这里有一个递归方法。如果需要的话,它还可以调整为返回找到轨迹的键和索引。它也有任何嵌套深度的能力,所以如果你想按国家或语言或流派等组合乐队,这将是没有问题的。你知道吗
现在我们使用这种方法,例如打印10个随机轨道:
这可能会输出以下示例:
更新:
你还想得到一首曲目所在的键和索引,即乐队名称、专辑名称和曲目编号?没问题,这里有一个修改过的函数:
它现在不以字符串的形式返回轨迹名称,而是创建指向所选轨迹的路径的键/索引列表。您可以这样使用它:
输出示例:
See this code running on ideone.com
扭曲顺序并在列表中使用实际变量(而不是它们的名称作为字符串)应该可以让您开始:
相关问题 更多 >
编程相关推荐