使用元组和字典

2024-03-28 08:47:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我从字典里取了元组键。到目前为止,我已经成功地把他们列进了一个列表:

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。你知道吗


Tags: 模块in列表forgetif字典food
2条回答

您需要进行元组解包:

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-这些是将被隐藏的内置变量

在迭代过程中,将成对的元组解压到单个组件中。然后将它们作为参数传入:

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

相关问题 更多 >