하나의 사전 값을 두 번째 사전 값과 비교하려고합니다. 값이 특정 기준을 충족하면 일치하는 항목에 따라 키와 값 쌍이있는 세 번째 사전을 만들고 싶습니다.파이썬 : 조건부 일 경우 하나의 사전을 반복하고 새 사전에 키/값 쌍 만들기
여기 내 문제를 보여주는 고안된 예입니다.
편집 : 모든 반품에 대해 죄송합니다. 그러나 스택 오버플로는 단일 반품을 인식하지 못하고 한 줄로 3-4 줄을 실행하여 코드를 읽을 수 없습니다. 또한 코드로 내 코드를 회색으로 표시하지 않습니다. 이유를 모르겠다. 이것은 내가 갖는 것입니다
{0: {'best_paying_job': 'superintendent'},
1: {'other_job': 'social_studies_teacher'}}
:
employee = {'skills': 'superintendent', 'teaches': 'social studies',
'grades': 'K-12'}
school_districts = {0: {'needs': 'superintendent', 'grades': 'K-12'},
1:{'needs': 'social_studies', 'grades': 'K-12'}}
jobs_in_school_district = {}
for key in school_districts:
if (employee['skills'] == school_districts[key]['needs']):
jobs_in_school_district[key] = {}
jobs_in_school_district[key]['best_paying_job'] = 'superintendent'
if (employee['teaches'] == school_districts[key]['needs']):
jobs_in_school_district[key] = {}
jobs_in_school_district[key]['other_job'] = 'social_studies_teacher'
print(jobs_in_school_district)
이 내가 'jobs_in_school_district'에 대한보고 싶은 값입니다
{1: {'other_job': 'social_studies_teacher'}}
내가 잘못 여기에 이해. 파이썬은 첫 번째 if 블록 (라인 6-8) 다음에 jobs_in_school_district
을 {0: {'best_paying_job': 'superintendent'}
과 동일하게 설정합니다. 그런 다음 두 번째 if 블록을 실행합니다 (10 행). 그러나 11 행에서 {0: {'best_paying_job': 'superintendent'}
을 겹쳐 쓰고 빈 dict를 다시 작성합니다. 그런 다음 할당 1 : { 'other_job': 'social_studies_teacher'} 행에서 jobs_in_school_district
에 '12
하지만 두 블록의 각 jobs_in_school_district[key] = {}
(라인 7, 11)을 제거하고 바로 이전에 하나를 넣어 경우 문이 같은 (새로운 라인 5) '에 대한'
jobs_in_school_district[key] = {}
for key in school_districts:
if (employee['skills'] == school_districts[key]['needs']):
jobs_in_school_district[key]['best_paying_job'] = 'superintendent'
if (employee['teaches'] == jobs[key]['needs']):
jobs_in_school_district[key]['other_job'] = 'social_studies_teacher'
print(jobs_in_school_district)
너무, (나도 몰라, 그것이 내가 생각 루핑 정지)에만 'school_districts'딕셔너리의 첫 번째 키를 확인하고 중지됩니다 나는 이것을 얻는다 :
jobs_in_school_district = {0: {'best_paying_job': 'superintendent'}
(나는 그것을 몇 번 다시 쓰려고 노력했다. 그리고 somet imes 대신 "핵심 오류"가 표시됨).
첫 번째 질문 : 두 번째 코드 블록이 왜 작동하지 않습니까? 두 번째 질문 : 작동하도록 코드를 작성하려면 어떻게해야합니까?
(나는 '다음'(방법 또는 기능)을 이해하지 못하고 무엇을하는지, 그래서 사용해야한다면 설명해 주시겠습니까?) 감사합니다.
여기에서 코드 샘플의 형식을 지정하는 방법을 읽어야합니다.이 코드는 읽을 수 없습니다. –
강제로 할 수있는 방법이 없다면 그것을 거부합니다. – Aquateenfan