0
이 stackoverflow question에서 계속됩니다.사전 목록에서 키의 값을 검색하고 다른 키 값을 반환하십시오.
data = [
{'site': 'Stackoverflow', 'id': 1},
{'site': 'Superuser', 'id': 2},
{'site': 'Serverfault', 'id': 3}
]
내가 특정 값에 대한 모든 '사이트'키를 검색하고, 그 사전의 '아이디'값을 반환 할 : 나는 다음과 같은 데이터 구조를 가지고있다. 예를 들어, '슈퍼 유저'를 검색 한 결과 2를 반환해야합니다 :
>>> print find_id('Superuser')
2
내가 참조 된 문제의 솔루션을 사용했을 때, 나는 오류 접수 :
>>> if any(d['site'] == 'Superuser' for d in data): print d['Superuser']
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'd' is not defined
>>> if any(d['site'] == 'Superuser' for d in data): print data['Superuser']
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers, not str
이 일의 가장 파이썬 방법은 무엇입니까?
'데프 find_id (데이터, 이름) : 다음 반환'(데이터 일 동안 (D [ 'ID를'] D [ '사이트'] == 명), 없음 경우) – agf