Python 2.7 如何获取列表中值的键

Python 2.7 如何获取列表中值的键,python-2.7,dictionary,key-value,Python 2.7,Dictionary,Key Value,假设我有一本这样的字典: d = {'Q1': ['10', '11', '12'], 'Q2': ['01', '02', '03'], 'Q3': ['04', '05', '06'], 'Q4': ['07', '08', '09'] } 和一个变量:s='04' 我的目标是在d中找到与值列表中的s对应的键。所以,我想返回'Q3' for k, v in d.items(): for item in v: if s == item: print(d[v

假设我有一本这样的字典:

d = {'Q1': ['10', '11', '12'], 'Q2': ['01', '02', '03'], 
'Q3': ['04', '05', '06'], 'Q4': ['07', '08', '09'] }
和一个变量:s='04' 我的目标是在d中找到与值列表中的s对应的键。所以,我想返回'Q3'

 for k, v in d.items():
   for item in v:
     if s == item:
        print(d[v])
上面抛出一个TypeError:unhabable type:'list。在不更改字典结构的情况下,如何实现我的目标?

您可以使用in检查元素是否在列表中,而不在列表中添加for:

d = {'Q1': ['10', '11', '12'], 'Q2': ['01', '02', '03'], 
     'Q3': ['04', '05', '06'], 'Q4': ['07', '08', '09']}

s = '04'

for k, v in d.items():
  if s in v:
    print(k, d[k])
输出:

Q3 ['04', '05', '06']

之所以出现TypeError,是因为您试图使用列表v作为字典键d[v],但由于列表不易损坏,因此它们不能作为键,而是使用d[k],因为k是键,因此d[k]既正确又直观。

是否要获取键?但你们都准备好了,它是K,如果你们打印K,它将打印Q3