사전을 사용하여 사전을 만들고 해당 값을 CSV 파일에서 가져 오려고했습니다. 나는 다음과 같이 해당 사전을 채우기 위해 노력하고 각 등급에 대한Python에서 for 루프를 사용하여 중첩 된 사전 만들기
6,100
8,150
10,200
:
내가이 유사하다 다른 평가 (150,300,600)에 대한 3 개 CSV 파일, 각 있다고 가정
{6 : 100,8 150, ...}, {300 6 : 140Rating={150,300,600}
npd = {}
temp={}
flg={}
flg150={}
flg300={}
flg600={}
print(flg)
for k in Rating:
print(k)
reader=csv.reader(open(str(k)+'.csv'))
for x in reader:
key=x[0]
temp[key]=x[1]
print(temp)
flg[k]=temp
print(flg[k])
print(flg)
는 I 화합물은 하나 사전
FLG = {150, 즉 생성 생각 8 : 160 ...} 등, 등}
하고 사전 분리 값을 할당한다
flg150 = flg.get (150)
을 문제 그것을 실행할 때 flg dict는 모든 키에 대해 동일한 값으로 끝납니다.
{}
600
{'8': '210', '6': '160', '10': '260'}
{'8': '210', '6': '160', '10': '260'}
300
{'8': '190', '6': '140', '10': '240'}
{'8': '190', '6': '140', '10': '240'}
150
{'8': '170', '6': '120', '10': '220'}
{'8': '170', '6': '120', '10': '220'}
{600: {'8': '170', '6': '120', '10': '220'}, 300: {'8': '170', '6': '120', '10': '220'}, 150: {'8': '170', '6': '120', '10': '220'}}
여기서 내가 뭘 잘못하고 있니? 그리고 좀 더 우아하게 만들 수있는 방법이 있나요? 왜냐하면 저에게보기 흉한 것처럼 보이기 때문입니다 ...?
그것은 작동하지만, 나는 완전히 차이를 이해한다고 말할 수 없습니다. 내가 flg [k]를 인쇄 할 때 나는 올바른 값을 얻을 것입니다. 왜 잘못되었는지 자세히 설명해 주시겠습니까? 솔루션을 제공해 주셔서 감사합니다. – user2132792
flg에 대한 출력은 {600 : { '8': '170', '6': '120', '10': '220'}, 300 : { '8': '170' : '120', '10': '220'}, 150 : { '8': '170', '6': '120', '10': '220'}}. 각 하위 항목은 동일한 값을가집니다. 그 이유는 각 키 (150,300,600)가 동일한 임시 사전에 설정되어 있기 때문입니다. – tiktok
필자는 flg [k] 출력이 매번 temp와 같다고 생각하여 print (temp) 및 print (flg [k])에서 호출 된 중복 줄이 인쇄 된 이유입니다. 올바른 값이 할당되었습니다 ... 지금 당신이 의미하는 바를 봅니다. 도움을 주셔서 감사합니다. – user2132792