使用元组和词典

时间:2015-07-06 14:59:35

标签: python dictionary tuples

我从字典中取出了元组键。截至目前,我已设法让他们进入列表:

dict = {(3,13):'gas', (11,4):'gas', (0,1):'food', (1,5):'food'}

list = []

for i in dict:
    if dict.get(i,0) == 'gas':
        list.append(i)

作为练习的一部分,我需要能够进入元组以使用公式中的每个(x,y)对。我怎么能这样做?

例如,如果(3,1)是我从列表中处理的第一个值,我希望能够单独取出每个值。我会将3作为x进入我的公式,1作为y进入我的公式。

我可以导入的唯一模块是math,因此我可以使用sqrt

2 个答案:

答案 0 :(得分:3)

你需要进行元组拆包:

for i in dict:
    # i is now equal to (3, 13), or (11, 4) etc
    x, y = i

事实上,你可以一步完成:

for x, y in dict:
    # etc.

但是,对于这种操作,因为看起来你想要所有的键和值,我会使用dict.items(),它返回键/值对:

for key, value in dict.items():
    # You don't need to do dict.get anymore, you already have it: 
    if value == 'gas':
        list.append(key)

但是你也想把它与元组的解包相结合,所以最终得到:

for (x, y), value in dict.items()

另一个注意事项:不要调用变量listdict - 这些是内置的,将被遮蔽

答案 1 :(得分:0)

在迭代期间将配对的元组解压缩到单个组件中。然后将它们作为参数传递:

for x, y in dic.keys():
    formula(x, y)