我从字典中取出了元组键。截至目前,我已设法让他们进入列表:
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
。
答案 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()
另一个注意事项:不要调用变量list
或dict
- 这些是内置的,将被遮蔽
答案 1 :(得分:0)
在迭代期间将配对的元组解压缩到单个组件中。然后将它们作为参数传递:
for x, y in dic.keys():
formula(x, y)