试图通过第二个元素的值在循环内调用元组的第一个元素

问题描述

标题有点令人困惑,但我实际上是在尝试通过调用 y 的值来存储元组 (x,y) 的名称 x。元组一个列表中,其中有三个。但是,此数据可能会更改,因此我希望此循环能够处理任何类型的列表长度,只要表单以元组形式出现。此外,我的元组采用 (str,[list]) 形式。这是我的代码示例。

key,val = list(d.keys()),list(d.values())
for i in val:
    if i == group_ids[0]:
        for x,y in list(d.items()):
            if y == i:
                print(x,y)

我之前创建了一个 defaultdict,以便以 (str,[list]) 格式访问我的元组列表,因为 ipywidgets8 不再接受字典。在小部件界面中根据 str 成功选择值列表后,我希望存储所选列表的名称,以便我可以根据它们各自的名称保存每个文件。我知道使用 Pandas 数据框,您可以根据另一列的值使用 .loc 调用一列的值,我正在尝试对我的元组列表执行类似的操作,但不知道如何操作。 group_ids 变量是从 ipywidgets 按钮接收到的选定值的列表。我必须调用 [0] 位置,因为它已用双括号存储。更简单地说,我想要(这不是任何编码语言,而是我的大脑如何最好地用人类语言表达):

FOR i IN val,if i == group_ids[0]
PRINT x of key at the index where i in val is found  

我希望这个解释是清楚的。我觉得这应该不难弄清楚,但由于某种原因我不能。

编辑:

我的数据样本

group_ids = [[5876233,5883627,5891029,5892881,5896571,5900242,5902043,5905766,5905796,5913064,5913075,5913080,5914875,5920356,5924048,5925824,5927655,5929456,5929479,5931307,5934950,5936704,5940344,5943972,5944002,5945785,5947627,5951172,5951181,5954751,5958339,5958354,5958358,5965416,5965424,5967145,5968843,5972099,5978640,5981887,5983501,5993193,5967178,5967171,5963649,5951209,5929476,5958331,5938533,5933134,5918577,5958359]]

list(d.items()) = [('Libraries',[5876233,5958359]),('Sport Facilities',[5812360,5817970,5818061,5821851,5823750,5823751,5827499,5829344,5829423,5831312,5833208,5838752,5840647,5842526,5842539,5842575,5842583,5844396....)]

d.keys = dict_keys(['Libraries','Sports Facilities','Youth Facilities'])

我想要在 group_ids 变量中看到的 id 列表的相应键

解决方法

所以我认为你只需要:

for k,v in d.items():
    if v[0] == group_ids[0]:
        print(k,v)

检查 if v == group_ids 会更精确,但我假设所有 ID 都不同。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...