如何创建包含两个索引的列表:字典的键和附加值。密钥和值应该从字典中随机选择。我已经尝试过(这些是我的拉丁语):
d = {}
d['house'] = "domus, domus"
da1 = d.items()
da = random.sample(wa1,1)
print (da)
当我这样做时,我得到一个只有一个索引的列表:键和值。但我需要一个包含两个索引的列表才能做到:
dav = da[0]
dal = da[1]
def solution():
dal = da[1]
lbl.configure(text=dal)
def continue():
dav = da[0]
lbl.configure(text=dav)
lbl = Label(window,text=dav)
lbl.pack()
btnl = Button(window,text="Show solution",command=solution)
btnl.pack()
btnw = Button(window,text="Continue",command=continue)
btnw.pack()
有没有人可以帮助我?
答案 0 :(得分:1)
您将返回一个包含元组的列表,该元组本身有两个元素。例如:
da == [('house', 'domus, domus')]
您可以使用两个索引对其进行索引:
>>> da[0][0]
'house'
>>> da[0][1]
'domus, domus'
如果您想将da
放入包含两个元素的列表中,您可以执行以下操作:
da = [x for x in da[0]]
或者,你可以发出
da = random.sample(d.items(),1)[0]
获取包含两个元素的元组
('house', 'domus, domus')
如果需要,您可以将其列入list(da)
列表。
答案 1 :(得分:1)
您想要选择随机元素,而不是随机样本:
>>> import random
>>> d = {'house': 'domus, domus', '???': 'something else'}
random.choice
会返回(key,value)
- 对:
>>> random.choice(d.items())
>>> random.choice(list(d.items())) # python3
('house', 'domus, domus')
我们可以使用元组解包语法解压缩:
>>> word, solution = random.choice(d.items())
>>> word, solution = random.choice(list(d.items()) # python3
>>> word
'???'
>>> solution
'something else'
另请注意,continue
是python关键字,不能用作函数名。