Python:如何使用键对和字典值创建列表

时间:2014-06-22 13:19:23

标签: python list dictionary key-value

如何创建包含两个索引的列表:字典的键和附加值。密钥和值应该从字典中随机选择。我已经尝试过(这些是我的拉丁语):

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()

有没有人可以帮助我?

2 个答案:

答案 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关键字,不能用作函数名。