【发布时间】:2020-09-04 04:48:32
【问题描述】:
def fill2_line1():
x2 = random.choice(list(twoSyllValues.items()))
line1.append(x2)
magicList = ([x[1] for x in line1])
if 1 in magicList:
fill2_line1()
fill2_line1()
complete_line = line1[0][0] + " " + line1[1][0] + " " +
line1[2][0]
print(complete_line)
这是有问题的部分 - 整个程序超过 150 行。它按原样完美运行,但有时我会得到重复的单词。为了优化代码,我想确保第一个随机元组选择中的键在该列表 line1 的下两个选定元组中不重复。我能想到的唯一方法是在第一个单词选择之后创建另一个字典,然后从新字典中排除该键值对,然后进行接下来的两个 random.choice 调用。我觉得一定有更简单的方法,但我还没有经验。
【问题讨论】:
-
你能发布示例输入和预期输出吗
-
当前输出可以是:wordA wordB wordA。我希望输出类似于: wordA word(anything but A) word(anything but A) 其中 wordA 是从字典中提取的元组中的第一个值。
-
@danno 在您的问题中包含此信息。使用适当的格式,我们会更容易理解而不是在 cmets 中。
标签: python list dictionary tuples