[{"data":1,"prerenderedAt":2074},["ShallowReactive",2],{"doc-\u002Ferrors\u002Fkeyerror-vs-indexerror-in-python-explained":3},{"id":4,"title":5,"body":6,"description":2067,"extension":2068,"meta":2069,"navigation":140,"path":2070,"seo":2071,"stem":2072,"__hash__":2073},"content\u002Ferrors\u002Fkeyerror-vs-indexerror-in-python-explained.md","KeyError vs IndexError in Python Explained",{"type":7,"value":8,"toc":2040},"minimark",[9,13,25,28,48,51,56,281,288,292,330,333,351,363,367,372,375,425,432,435,449,456,460,465,468,508,514,516,530,537,541,546,611,614,634,637,652,660,728,730,740,749,752,828,830,839,847,851,957,961,1054,1058,1062,1100,1102,1122,1124,1147,1151,1242,1246,1249,1313,1316,1319,1384,1387,1441,1444,1455,1459,1462,1490,1493,1575,1577,1616,1619,1631,1635,1638,1660,1663,1756,1759,1797,1801,1804,1817,1820,1853,1857,1932,1935,1955,1959,1963,1966,1970,1976,1980,1988,1995,1999,2005,2009,2036],[10,11,5],"h1",{"id":12},"keyerror-vs-indexerror-in-python-explained",[14,15,16,20,21,24],"p",{},[17,18,19],"code",{},"KeyError"," and ",[17,22,23],{},"IndexError"," both happen when your code tries to access something that is not available.",[14,26,27],{},"The difference is simple:",[29,30,31,41],"ul",{},[32,33,34,36,37],"li",{},[17,35,19],{}," is about a ",[38,39,40],"strong",{},"missing dictionary key",[32,42,43,36,45],{},[17,44,23],{},[38,46,47],{},"list or tuple position that does not exist",[14,49,50],{},"If you can quickly tell whether you are working with a dictionary or a sequence like a list, you can usually fix the problem fast.",[52,53,55],"h2",{"id":54},"quick-fix","Quick fix",[57,58,63],"pre",{"className":59,"code":60,"language":61,"meta":62,"style":62},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","data = {\"name\": \"Ana\"}\nitems = [10, 20, 30]\n\n# KeyError fix: check the key first or use get()\nprint(data.get(\"age\"))  # None\n\n# IndexError fix: check the index first\nindex = 5\nif 0 \u003C= index \u003C len(items):\n    print(items[index])\nelse:\n    print(\"Index out of range\")\n","python","",[17,64,65,106,135,142,149,184,189,195,206,236,255,264],{"__ignoreMap":62},[66,67,70,74,78,82,86,90,92,95,98,101,103],"span",{"class":68,"line":69},"line",1,[66,71,73],{"class":72},"su5hD","data ",[66,75,77],{"class":76},"smGrS","=",[66,79,81],{"class":80},"sP7_E"," {",[66,83,85],{"class":84},"sjJ54","\"",[66,87,89],{"class":88},"s_sjI","name",[66,91,85],{"class":84},[66,93,94],{"class":80},":",[66,96,97],{"class":84}," \"",[66,99,100],{"class":88},"Ana",[66,102,85],{"class":84},[66,104,105],{"class":80},"}\n",[66,107,109,112,114,117,121,124,127,129,132],{"class":68,"line":108},2,[66,110,111],{"class":72},"items ",[66,113,77],{"class":76},[66,115,116],{"class":80}," [",[66,118,120],{"class":119},"srdBf","10",[66,122,123],{"class":80},",",[66,125,126],{"class":119}," 20",[66,128,123],{"class":80},[66,130,131],{"class":119}," 30",[66,133,134],{"class":80},"]\n",[66,136,138],{"class":68,"line":137},3,[66,139,141],{"emptyLinePlaceholder":140},true,"\n",[66,143,145],{"class":68,"line":144},4,[66,146,148],{"class":147},"sutJx","# KeyError fix: check the key first or use get()\n",[66,150,152,156,159,163,166,169,171,173,176,178,181],{"class":68,"line":151},5,[66,153,155],{"class":154},"sptTA","print",[66,157,158],{"class":80},"(",[66,160,162],{"class":161},"slqww","data",[66,164,165],{"class":80},".",[66,167,168],{"class":161},"get",[66,170,158],{"class":80},[66,172,85],{"class":84},[66,174,175],{"class":88},"age",[66,177,85],{"class":84},[66,179,180],{"class":80},"))",[66,182,183],{"class":147},"  # None\n",[66,185,187],{"class":68,"line":186},6,[66,188,141],{"emptyLinePlaceholder":140},[66,190,192],{"class":68,"line":191},7,[66,193,194],{"class":147},"# IndexError fix: check the index first\n",[66,196,198,201,203],{"class":68,"line":197},8,[66,199,200],{"class":72},"index ",[66,202,77],{"class":76},[66,204,205],{"class":119}," 5\n",[66,207,209,213,216,219,222,225,228,230,233],{"class":68,"line":208},9,[66,210,212],{"class":211},"sVHd0","if",[66,214,215],{"class":119}," 0",[66,217,218],{"class":76}," \u003C=",[66,220,221],{"class":72}," index ",[66,223,224],{"class":76},"\u003C",[66,226,227],{"class":154}," len",[66,229,158],{"class":80},[66,231,232],{"class":161},"items",[66,234,235],{"class":80},"):\n",[66,237,239,242,244,246,249,252],{"class":68,"line":238},10,[66,240,241],{"class":154},"    print",[66,243,158],{"class":80},[66,245,232],{"class":161},[66,247,248],{"class":80},"[",[66,250,251],{"class":161},"index",[66,253,254],{"class":80},"])\n",[66,256,258,261],{"class":68,"line":257},11,[66,259,260],{"class":211},"else",[66,262,263],{"class":80},":\n",[66,265,267,269,271,273,276,278],{"class":68,"line":266},12,[66,268,241],{"class":154},[66,270,158],{"class":80},[66,272,85],{"class":84},[66,274,275],{"class":88},"Index out of range",[66,277,85],{"class":84},[66,279,280],{"class":80},")\n",[14,282,283,284,287],{},"Use ",[17,285,286],{},"dict.get()"," for possibly missing dictionary keys. Check the length before using a list or tuple index.",[52,289,291],{"id":290},"what-is-the-difference-between-keyerror-and-indexerror","What is the difference between KeyError and IndexError?",[29,293,294,299,304,314],{},[32,295,296,298],{},[17,297,19],{}," happens when you ask a dictionary for a key that does not exist.",[32,300,301,303],{},[17,302,23],{}," happens when you ask a list or tuple for a position that does not exist.",[32,305,306,307,310,311,165],{},"A ",[38,308,309],{},"key"," is a dictionary label like ",[17,312,313],{},"\"name\"",[32,315,316,317,319,320,323,324,323,327,165],{},"An ",[38,318,251],{}," is a numeric position like ",[17,321,322],{},"0",", ",[17,325,326],{},"1",[17,328,329],{},"2",[14,331,332],{},"For example:",[29,334,335,343],{},[32,336,337,340,341],{},[17,338,339],{},"user[\"email\"]"," uses a ",[38,342,309],{},[32,344,345,348,349],{},[17,346,347],{},"items[2]"," uses an ",[38,350,251],{},[14,352,353,354,20,359,165],{},"If you need a refresher, see ",[355,356,358],"a",{"href":357},"\u002Flearn\u002Fpython-dictionaries-explained\u002F","Python dictionaries explained",[355,360,362],{"href":361},"\u002Flearn\u002Fpython-lists-explained-beginner-guide","Python lists explained",[52,364,366],{"id":365},"when-keyerror-happens","When KeyError happens",[14,368,369,371],{},[17,370,19],{}," is most common with dictionaries.",[14,373,374],{},"It happens when code like this tries to read a missing key:",[57,376,378],{"className":59,"code":377,"language":61,"meta":62,"style":62},"user = {\"name\": \"Ana\"}\nprint(user[\"email\"])\n",[17,379,380,405],{"__ignoreMap":62},[66,381,382,385,387,389,391,393,395,397,399,401,403],{"class":68,"line":69},[66,383,384],{"class":72},"user ",[66,386,77],{"class":76},[66,388,81],{"class":80},[66,390,85],{"class":84},[66,392,89],{"class":88},[66,394,85],{"class":84},[66,396,94],{"class":80},[66,398,97],{"class":84},[66,400,100],{"class":88},[66,402,85],{"class":84},[66,404,105],{"class":80},[66,406,407,409,411,414,416,418,421,423],{"class":68,"line":108},[66,408,155],{"class":154},[66,410,158],{"class":80},[66,412,413],{"class":161},"user",[66,415,248],{"class":80},[66,417,85],{"class":84},[66,419,420],{"class":88},"email",[66,422,85],{"class":84},[66,424,254],{"class":80},[14,426,427,428,431],{},"The dictionary exists, but ",[17,429,430],{},"\"email\""," is not inside it.",[14,433,434],{},"Common causes:",[29,436,437,440,443,446],{},[32,438,439],{},"Misspelled keys",[32,441,442],{},"Unexpected input data",[32,444,445],{},"Assuming JSON or API data always contains the same fields",[32,447,448],{},"Using the wrong object type",[14,450,451,452,165],{},"If you want a full guide, see ",[355,453,455],{"href":454},"\u002Ferrors\u002Fkeyerror-in-python-causes-and-fixes\u002F","KeyError in Python: causes and fixes",[52,457,459],{"id":458},"when-indexerror-happens","When IndexError happens",[14,461,462,464],{},[17,463,23],{}," is most common with lists and tuples.",[14,466,467],{},"It happens when code tries to access a position outside the valid range:",[57,469,471],{"className":59,"code":470,"language":61,"meta":62,"style":62},"items = [10, 20, 30]\nprint(items[5])\n",[17,472,473,493],{"__ignoreMap":62},[66,474,475,477,479,481,483,485,487,489,491],{"class":68,"line":69},[66,476,111],{"class":72},[66,478,77],{"class":76},[66,480,116],{"class":80},[66,482,120],{"class":119},[66,484,123],{"class":80},[66,486,126],{"class":119},[66,488,123],{"class":80},[66,490,131],{"class":119},[66,492,134],{"class":80},[66,494,495,497,499,501,503,506],{"class":68,"line":108},[66,496,155],{"class":154},[66,498,158],{"class":80},[66,500,232],{"class":161},[66,502,248],{"class":80},[66,504,505],{"class":119},"5",[66,507,254],{"class":80},[14,509,510,511,513],{},"The list exists, but index ",[17,512,505],{}," is too large.",[14,515,434],{},[29,517,518,521,524,527],{},[32,519,520],{},"Loops that go too far",[32,522,523],{},"Hard-coded indexes",[32,525,526],{},"Empty lists",[32,528,529],{},"Assuming a list always has enough items",[14,531,532,533,165],{},"For a deeper explanation, see ",[355,534,536],{"href":535},"\u002Ferrors\u002Findexerror-in-python-causes-and-fixes\u002F","IndexError in Python: causes and fixes",[52,538,540],{"id":539},"example-keyerror","Example: KeyError",[14,542,543,544,94],{},"Here is a simple example that causes ",[17,545,19],{},[57,547,549],{"className":59,"code":548,"language":61,"meta":62,"style":62},"user = {\"name\": \"Ana\", \"city\": \"Lima\"}\nprint(user[\"email\"])\n",[17,550,551,593],{"__ignoreMap":62},[66,552,553,555,557,559,561,563,565,567,569,571,573,575,577,580,582,584,586,589,591],{"class":68,"line":69},[66,554,384],{"class":72},[66,556,77],{"class":76},[66,558,81],{"class":80},[66,560,85],{"class":84},[66,562,89],{"class":88},[66,564,85],{"class":84},[66,566,94],{"class":80},[66,568,97],{"class":84},[66,570,100],{"class":88},[66,572,85],{"class":84},[66,574,123],{"class":80},[66,576,97],{"class":84},[66,578,579],{"class":88},"city",[66,581,85],{"class":84},[66,583,94],{"class":80},[66,585,97],{"class":84},[66,587,588],{"class":88},"Lima",[66,590,85],{"class":84},[66,592,105],{"class":80},[66,594,595,597,599,601,603,605,607,609],{"class":68,"line":108},[66,596,155],{"class":154},[66,598,158],{"class":80},[66,600,413],{"class":161},[66,602,248],{"class":80},[66,604,85],{"class":84},[66,606,420],{"class":88},[66,608,85],{"class":84},[66,610,254],{"class":80},[14,612,613],{},"Output:",[57,615,617],{"className":59,"code":616,"language":61,"meta":62,"style":62},"KeyError: 'email'\n",[17,618,619],{"__ignoreMap":62},[66,620,621,624,626,629,631],{"class":68,"line":69},[66,622,19],{"class":623},"sZMiF",[66,625,94],{"class":80},[66,627,628],{"class":84}," '",[66,630,420],{"class":88},[66,632,633],{"class":84},"'\n",[14,635,636],{},"Why it happens:",[29,638,639,644,649],{},[32,640,641,643],{},[17,642,413],{}," is a dictionary",[32,645,646,647],{},"The code asks for the key ",[17,648,430],{},[32,650,651],{},"That key is missing",[653,654,656,657],"h3",{"id":655},"fix-1-use-get","Fix 1: Use ",[17,658,659],{},"get()",[57,661,663],{"className":59,"code":662,"language":61,"meta":62,"style":62},"user = {\"name\": \"Ana\", \"city\": \"Lima\"}\nprint(user.get(\"email\"))\n",[17,664,665,705],{"__ignoreMap":62},[66,666,667,669,671,673,675,677,679,681,683,685,687,689,691,693,695,697,699,701,703],{"class":68,"line":69},[66,668,384],{"class":72},[66,670,77],{"class":76},[66,672,81],{"class":80},[66,674,85],{"class":84},[66,676,89],{"class":88},[66,678,85],{"class":84},[66,680,94],{"class":80},[66,682,97],{"class":84},[66,684,100],{"class":88},[66,686,85],{"class":84},[66,688,123],{"class":80},[66,690,97],{"class":84},[66,692,579],{"class":88},[66,694,85],{"class":84},[66,696,94],{"class":80},[66,698,97],{"class":84},[66,700,588],{"class":88},[66,702,85],{"class":84},[66,704,105],{"class":80},[66,706,707,709,711,713,715,717,719,721,723,725],{"class":68,"line":108},[66,708,155],{"class":154},[66,710,158],{"class":80},[66,712,413],{"class":161},[66,714,165],{"class":80},[66,716,168],{"class":161},[66,718,158],{"class":80},[66,720,85],{"class":84},[66,722,420],{"class":88},[66,724,85],{"class":84},[66,726,727],{"class":80},"))\n",[14,729,613],{},[57,731,733],{"className":59,"code":732,"language":61,"meta":62,"style":62},"None\n",[17,734,735],{"__ignoreMap":62},[66,736,737],{"class":68,"line":69},[66,738,732],{"class":739},"s39Yj",[14,741,742,744,745,748],{},[17,743,659],{}," returns ",[17,746,747],{},"None"," instead of raising an error if the key is missing.",[14,750,751],{},"You can also give a default value:",[57,753,755],{"className":59,"code":754,"language":61,"meta":62,"style":62},"user = {\"name\": \"Ana\", \"city\": \"Lima\"}\nprint(user.get(\"email\", \"No email found\"))\n",[17,756,757,797],{"__ignoreMap":62},[66,758,759,761,763,765,767,769,771,773,775,777,779,781,783,785,787,789,791,793,795],{"class":68,"line":69},[66,760,384],{"class":72},[66,762,77],{"class":76},[66,764,81],{"class":80},[66,766,85],{"class":84},[66,768,89],{"class":88},[66,770,85],{"class":84},[66,772,94],{"class":80},[66,774,97],{"class":84},[66,776,100],{"class":88},[66,778,85],{"class":84},[66,780,123],{"class":80},[66,782,97],{"class":84},[66,784,579],{"class":88},[66,786,85],{"class":84},[66,788,94],{"class":80},[66,790,97],{"class":84},[66,792,588],{"class":88},[66,794,85],{"class":84},[66,796,105],{"class":80},[66,798,799,801,803,805,807,809,811,813,815,817,819,821,824,826],{"class":68,"line":108},[66,800,155],{"class":154},[66,802,158],{"class":80},[66,804,413],{"class":161},[66,806,165],{"class":80},[66,808,168],{"class":161},[66,810,158],{"class":80},[66,812,85],{"class":84},[66,814,420],{"class":88},[66,816,85],{"class":84},[66,818,123],{"class":80},[66,820,97],{"class":84},[66,822,823],{"class":88},"No email found",[66,825,85],{"class":84},[66,827,727],{"class":80},[14,829,613],{},[57,831,833],{"className":59,"code":832,"language":61,"meta":62,"style":62},"No email found\n",[17,834,835],{"__ignoreMap":62},[66,836,837],{"class":68,"line":69},[66,838,832],{"class":72},[14,840,841,842,846],{},"See ",[355,843,845],{"href":844},"\u002Freference\u002Fpython-dictionary-get-method\u002F","Python dictionary get() method"," for more examples.",[653,848,850],{"id":849},"fix-2-check-the-key-first","Fix 2: Check the key first",[57,852,854],{"className":59,"code":853,"language":61,"meta":62,"style":62},"user = {\"name\": \"Ana\", \"city\": \"Lima\"}\n\nif \"email\" in user:\n    print(user[\"email\"])\nelse:\n    print(\"Key not found\")\n",[17,855,856,896,900,918,936,942],{"__ignoreMap":62},[66,857,858,860,862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892,894],{"class":68,"line":69},[66,859,384],{"class":72},[66,861,77],{"class":76},[66,863,81],{"class":80},[66,865,85],{"class":84},[66,867,89],{"class":88},[66,869,85],{"class":84},[66,871,94],{"class":80},[66,873,97],{"class":84},[66,875,100],{"class":88},[66,877,85],{"class":84},[66,879,123],{"class":80},[66,881,97],{"class":84},[66,883,579],{"class":88},[66,885,85],{"class":84},[66,887,94],{"class":80},[66,889,97],{"class":84},[66,891,588],{"class":88},[66,893,85],{"class":84},[66,895,105],{"class":80},[66,897,898],{"class":68,"line":108},[66,899,141],{"emptyLinePlaceholder":140},[66,901,902,904,906,908,910,913,916],{"class":68,"line":137},[66,903,212],{"class":211},[66,905,97],{"class":84},[66,907,420],{"class":88},[66,909,85],{"class":84},[66,911,912],{"class":76}," in",[66,914,915],{"class":72}," user",[66,917,263],{"class":80},[66,919,920,922,924,926,928,930,932,934],{"class":68,"line":144},[66,921,241],{"class":154},[66,923,158],{"class":80},[66,925,413],{"class":161},[66,927,248],{"class":80},[66,929,85],{"class":84},[66,931,420],{"class":88},[66,933,85],{"class":84},[66,935,254],{"class":80},[66,937,938,940],{"class":68,"line":151},[66,939,260],{"class":211},[66,941,263],{"class":80},[66,943,944,946,948,950,953,955],{"class":68,"line":186},[66,945,241],{"class":154},[66,947,158],{"class":80},[66,949,85],{"class":84},[66,951,952],{"class":88},"Key not found",[66,954,85],{"class":84},[66,956,280],{"class":80},[653,958,960],{"id":959},"fix-3-add-the-missing-key","Fix 3: Add the missing key",[57,962,964],{"className":59,"code":963,"language":61,"meta":62,"style":62},"user = {\"name\": \"Ana\", \"city\": \"Lima\"}\nuser[\"email\"] = \"ana@example.com\"\n\nprint(user[\"email\"])\n",[17,965,966,1006,1032,1036],{"__ignoreMap":62},[66,967,968,970,972,974,976,978,980,982,984,986,988,990,992,994,996,998,1000,1002,1004],{"class":68,"line":69},[66,969,384],{"class":72},[66,971,77],{"class":76},[66,973,81],{"class":80},[66,975,85],{"class":84},[66,977,89],{"class":88},[66,979,85],{"class":84},[66,981,94],{"class":80},[66,983,97],{"class":84},[66,985,100],{"class":88},[66,987,85],{"class":84},[66,989,123],{"class":80},[66,991,97],{"class":84},[66,993,579],{"class":88},[66,995,85],{"class":84},[66,997,94],{"class":80},[66,999,97],{"class":84},[66,1001,588],{"class":88},[66,1003,85],{"class":84},[66,1005,105],{"class":80},[66,1007,1008,1010,1012,1014,1016,1018,1021,1024,1026,1029],{"class":68,"line":108},[66,1009,413],{"class":72},[66,1011,248],{"class":80},[66,1013,85],{"class":84},[66,1015,420],{"class":88},[66,1017,85],{"class":84},[66,1019,1020],{"class":80},"]",[66,1022,1023],{"class":76}," =",[66,1025,97],{"class":84},[66,1027,1028],{"class":88},"ana@example.com",[66,1030,1031],{"class":84},"\"\n",[66,1033,1034],{"class":68,"line":137},[66,1035,141],{"emptyLinePlaceholder":140},[66,1037,1038,1040,1042,1044,1046,1048,1050,1052],{"class":68,"line":144},[66,1039,155],{"class":154},[66,1041,158],{"class":80},[66,1043,413],{"class":161},[66,1045,248],{"class":80},[66,1047,85],{"class":84},[66,1049,420],{"class":88},[66,1051,85],{"class":84},[66,1053,254],{"class":80},[52,1055,1057],{"id":1056},"example-indexerror","Example: IndexError",[14,1059,543,1060,94],{},[17,1061,23],{},[57,1063,1064],{"className":59,"code":470,"language":61,"meta":62,"style":62},[17,1065,1066,1086],{"__ignoreMap":62},[66,1067,1068,1070,1072,1074,1076,1078,1080,1082,1084],{"class":68,"line":69},[66,1069,111],{"class":72},[66,1071,77],{"class":76},[66,1073,116],{"class":80},[66,1075,120],{"class":119},[66,1077,123],{"class":80},[66,1079,126],{"class":119},[66,1081,123],{"class":80},[66,1083,131],{"class":119},[66,1085,134],{"class":80},[66,1087,1088,1090,1092,1094,1096,1098],{"class":68,"line":108},[66,1089,155],{"class":154},[66,1091,158],{"class":80},[66,1093,232],{"class":161},[66,1095,248],{"class":80},[66,1097,505],{"class":119},[66,1099,254],{"class":80},[14,1101,613],{},[57,1103,1105],{"className":59,"code":1104,"language":61,"meta":62,"style":62},"IndexError: list index out of range\n",[17,1106,1107],{"__ignoreMap":62},[66,1108,1109,1111,1113,1116,1119],{"class":68,"line":69},[66,1110,23],{"class":623},[66,1112,94],{"class":80},[66,1114,1115],{"class":623}," list",[66,1117,1118],{"class":72}," index out of ",[66,1120,1121],{"class":154},"range\n",[14,1123,636],{},[29,1125,1126,1131,1141],{},[32,1127,1128,1130],{},[17,1129,232],{}," is a list",[32,1132,1133,1134,323,1136,1138,1139],{},"Valid indexes are ",[17,1135,322],{},[17,1137,326],{},", and ",[17,1140,329],{},[32,1142,1143,1144,1146],{},"Index ",[17,1145,505],{}," does not exist",[653,1148,1150],{"id":1149},"fix-1-check-the-index-before-using-it","Fix 1: Check the index before using it",[57,1152,1154],{"className":59,"code":1153,"language":61,"meta":62,"style":62},"items = [10, 20, 30]\nindex = 5\n\nif 0 \u003C= index \u003C len(items):\n    print(items[index])\nelse:\n    print(\"Index out of range\")\n",[17,1155,1156,1176,1184,1188,1208,1222,1228],{"__ignoreMap":62},[66,1157,1158,1160,1162,1164,1166,1168,1170,1172,1174],{"class":68,"line":69},[66,1159,111],{"class":72},[66,1161,77],{"class":76},[66,1163,116],{"class":80},[66,1165,120],{"class":119},[66,1167,123],{"class":80},[66,1169,126],{"class":119},[66,1171,123],{"class":80},[66,1173,131],{"class":119},[66,1175,134],{"class":80},[66,1177,1178,1180,1182],{"class":68,"line":108},[66,1179,200],{"class":72},[66,1181,77],{"class":76},[66,1183,205],{"class":119},[66,1185,1186],{"class":68,"line":137},[66,1187,141],{"emptyLinePlaceholder":140},[66,1189,1190,1192,1194,1196,1198,1200,1202,1204,1206],{"class":68,"line":144},[66,1191,212],{"class":211},[66,1193,215],{"class":119},[66,1195,218],{"class":76},[66,1197,221],{"class":72},[66,1199,224],{"class":76},[66,1201,227],{"class":154},[66,1203,158],{"class":80},[66,1205,232],{"class":161},[66,1207,235],{"class":80},[66,1209,1210,1212,1214,1216,1218,1220],{"class":68,"line":151},[66,1211,241],{"class":154},[66,1213,158],{"class":80},[66,1215,232],{"class":161},[66,1217,248],{"class":80},[66,1219,251],{"class":161},[66,1221,254],{"class":80},[66,1223,1224,1226],{"class":68,"line":186},[66,1225,260],{"class":211},[66,1227,263],{"class":80},[66,1229,1230,1232,1234,1236,1238,1240],{"class":68,"line":191},[66,1231,241],{"class":154},[66,1233,158],{"class":80},[66,1235,85],{"class":84},[66,1237,275],{"class":88},[66,1239,85],{"class":84},[66,1241,280],{"class":80},[653,1243,1245],{"id":1244},"fix-2-change-loop-logic","Fix 2: Change loop logic",[14,1247,1248],{},"Bad example:",[57,1250,1252],{"className":59,"code":1251,"language":61,"meta":62,"style":62},"items = [10, 20, 30]\n\nfor i in range(5):\n    print(items[i])\n",[17,1253,1254,1274,1278,1298],{"__ignoreMap":62},[66,1255,1256,1258,1260,1262,1264,1266,1268,1270,1272],{"class":68,"line":69},[66,1257,111],{"class":72},[66,1259,77],{"class":76},[66,1261,116],{"class":80},[66,1263,120],{"class":119},[66,1265,123],{"class":80},[66,1267,126],{"class":119},[66,1269,123],{"class":80},[66,1271,131],{"class":119},[66,1273,134],{"class":80},[66,1275,1276],{"class":68,"line":108},[66,1277,141],{"emptyLinePlaceholder":140},[66,1279,1280,1283,1286,1289,1292,1294,1296],{"class":68,"line":137},[66,1281,1282],{"class":211},"for",[66,1284,1285],{"class":72}," i ",[66,1287,1288],{"class":211},"in",[66,1290,1291],{"class":154}," range",[66,1293,158],{"class":80},[66,1295,505],{"class":119},[66,1297,235],{"class":80},[66,1299,1300,1302,1304,1306,1308,1311],{"class":68,"line":144},[66,1301,241],{"class":154},[66,1303,158],{"class":80},[66,1305,232],{"class":161},[66,1307,248],{"class":80},[66,1309,1310],{"class":161},"i",[66,1312,254],{"class":80},[14,1314,1315],{},"This fails because the loop tries indexes that do not exist.",[14,1317,1318],{},"Better:",[57,1320,1322],{"className":59,"code":1321,"language":61,"meta":62,"style":62},"items = [10, 20, 30]\n\nfor i in range(len(items)):\n    print(items[i])\n",[17,1323,1324,1344,1348,1370],{"__ignoreMap":62},[66,1325,1326,1328,1330,1332,1334,1336,1338,1340,1342],{"class":68,"line":69},[66,1327,111],{"class":72},[66,1329,77],{"class":76},[66,1331,116],{"class":80},[66,1333,120],{"class":119},[66,1335,123],{"class":80},[66,1337,126],{"class":119},[66,1339,123],{"class":80},[66,1341,131],{"class":119},[66,1343,134],{"class":80},[66,1345,1346],{"class":68,"line":108},[66,1347,141],{"emptyLinePlaceholder":140},[66,1349,1350,1352,1354,1356,1358,1360,1363,1365,1367],{"class":68,"line":137},[66,1351,1282],{"class":211},[66,1353,1285],{"class":72},[66,1355,1288],{"class":211},[66,1357,1291],{"class":154},[66,1359,158],{"class":80},[66,1361,1362],{"class":154},"len",[66,1364,158],{"class":80},[66,1366,232],{"class":161},[66,1368,1369],{"class":80},")):\n",[66,1371,1372,1374,1376,1378,1380,1382],{"class":68,"line":144},[66,1373,241],{"class":154},[66,1375,158],{"class":80},[66,1377,232],{"class":161},[66,1379,248],{"class":80},[66,1381,1310],{"class":161},[66,1383,254],{"class":80},[14,1385,1386],{},"Best for beginners:",[57,1388,1390],{"className":59,"code":1389,"language":61,"meta":62,"style":62},"items = [10, 20, 30]\n\nfor item in items:\n    print(item)\n",[17,1391,1392,1412,1416,1430],{"__ignoreMap":62},[66,1393,1394,1396,1398,1400,1402,1404,1406,1408,1410],{"class":68,"line":69},[66,1395,111],{"class":72},[66,1397,77],{"class":76},[66,1399,116],{"class":80},[66,1401,120],{"class":119},[66,1403,123],{"class":80},[66,1405,126],{"class":119},[66,1407,123],{"class":80},[66,1409,131],{"class":119},[66,1411,134],{"class":80},[66,1413,1414],{"class":68,"line":108},[66,1415,141],{"emptyLinePlaceholder":140},[66,1417,1418,1420,1423,1425,1428],{"class":68,"line":137},[66,1419,1282],{"class":211},[66,1421,1422],{"class":72}," item ",[66,1424,1288],{"class":211},[66,1426,1427],{"class":72}," items",[66,1429,263],{"class":80},[66,1431,1432,1434,1436,1439],{"class":68,"line":144},[66,1433,241],{"class":154},[66,1435,158],{"class":80},[66,1437,1438],{"class":161},"item",[66,1440,280],{"class":80},[14,1442,1443],{},"Looping directly over the list avoids many index mistakes.",[14,1445,1446,1447,165],{},"If needed, review ",[355,1448,1450,1451,1454],{"href":1449},"\u002Freference\u002Fpython-len-function-explained\u002F","the ",[17,1452,1453],{},"len()"," function explained",[52,1456,1458],{"id":1457},"how-to-choose-the-right-fix","How to choose the right fix",[14,1460,1461],{},"When you see the error, first look at the object you are accessing.",[29,1463,1464,1473,1481,1484],{},[32,1465,1466,1467,1470,1471],{},"If the code uses square brackets on a ",[38,1468,1469],{},"dictionary",", check the ",[38,1472,309],{},[32,1474,1466,1475,1470,1478],{},[38,1476,1477],{},"list or tuple",[38,1479,1480],{},"position",[32,1482,1483],{},"Print the object to confirm what it contains",[32,1485,283,1486,1489],{},[17,1487,1488],{},"type()"," if you are not sure what kind of object you have",[14,1491,1492],{},"Example:",[57,1494,1496],{"className":59,"code":1495,"language":61,"meta":62,"style":62},"data = {\"name\": \"Ana\"}\nitems = [10, 20, 30]\n\nprint(type(data))\nprint(type(items))\n",[17,1497,1498,1522,1542,1546,1561],{"__ignoreMap":62},[66,1499,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520],{"class":68,"line":69},[66,1501,73],{"class":72},[66,1503,77],{"class":76},[66,1505,81],{"class":80},[66,1507,85],{"class":84},[66,1509,89],{"class":88},[66,1511,85],{"class":84},[66,1513,94],{"class":80},[66,1515,97],{"class":84},[66,1517,100],{"class":88},[66,1519,85],{"class":84},[66,1521,105],{"class":80},[66,1523,1524,1526,1528,1530,1532,1534,1536,1538,1540],{"class":68,"line":108},[66,1525,111],{"class":72},[66,1527,77],{"class":76},[66,1529,116],{"class":80},[66,1531,120],{"class":119},[66,1533,123],{"class":80},[66,1535,126],{"class":119},[66,1537,123],{"class":80},[66,1539,131],{"class":119},[66,1541,134],{"class":80},[66,1543,1544],{"class":68,"line":137},[66,1545,141],{"emptyLinePlaceholder":140},[66,1547,1548,1550,1552,1555,1557,1559],{"class":68,"line":144},[66,1549,155],{"class":154},[66,1551,158],{"class":80},[66,1553,1554],{"class":623},"type",[66,1556,158],{"class":80},[66,1558,162],{"class":161},[66,1560,727],{"class":80},[66,1562,1563,1565,1567,1569,1571,1573],{"class":68,"line":151},[66,1564,155],{"class":154},[66,1566,158],{"class":80},[66,1568,1554],{"class":623},[66,1570,158],{"class":80},[66,1572,232],{"class":161},[66,1574,727],{"class":80},[14,1576,613],{},[57,1578,1580],{"className":59,"code":1579,"language":61,"meta":62,"style":62},"\u003Cclass 'dict'>\n\u003Cclass 'list'>\n",[17,1581,1582,1601],{"__ignoreMap":62},[66,1583,1584,1586,1590,1592,1595,1598],{"class":68,"line":69},[66,1585,224],{"class":76},[66,1587,1589],{"class":1588},"sbsja","class",[66,1591,628],{"class":84},[66,1593,1594],{"class":88},"dict",[66,1596,1597],{"class":84},"'",[66,1599,1600],{"class":76},">\n",[66,1602,1603,1605,1607,1609,1612,1614],{"class":68,"line":108},[66,1604,224],{"class":76},[66,1606,1589],{"class":1588},[66,1608,628],{"class":84},[66,1610,1611],{"class":88},"list",[66,1613,1597],{"class":84},[66,1615,1600],{"class":76},[14,1617,1618],{},"A good rule:",[29,1620,1621,1626],{},[32,1622,1623,1624],{},"Dictionary + missing label = ",[17,1625,19],{},[32,1627,1628,1629],{},"List or tuple + bad numeric position = ",[17,1630,23],{},[52,1632,1634],{"id":1633},"beginner-debugging-steps","Beginner debugging steps",[14,1636,1637],{},"If you are not sure what is wrong, use these steps:",[1639,1640,1641,1648,1651,1654,1657],"ol",{},[32,1642,1643,1644,1647],{},"Read the ",[38,1645,1646],{},"last line"," of the traceback first",[32,1649,1650],{},"Find the variable being accessed",[32,1652,1653],{},"Check whether it is a dictionary, list, or tuple",[32,1655,1656],{},"Inspect the available keys or valid indexes",[32,1658,1659],{},"Check for empty data structures",[14,1661,1662],{},"Useful debugging commands:",[57,1664,1666],{"className":59,"code":1665,"language":61,"meta":62,"style":62},"print(type(data))\nprint(data)\nprint(data.keys())\n\nprint(len(items))\nprint(index)\nprint(list(enumerate(items)))\n",[17,1667,1668,1682,1692,1708,1712,1726,1736],{"__ignoreMap":62},[66,1669,1670,1672,1674,1676,1678,1680],{"class":68,"line":69},[66,1671,155],{"class":154},[66,1673,158],{"class":80},[66,1675,1554],{"class":623},[66,1677,158],{"class":80},[66,1679,162],{"class":161},[66,1681,727],{"class":80},[66,1683,1684,1686,1688,1690],{"class":68,"line":108},[66,1685,155],{"class":154},[66,1687,158],{"class":80},[66,1689,162],{"class":161},[66,1691,280],{"class":80},[66,1693,1694,1696,1698,1700,1702,1705],{"class":68,"line":137},[66,1695,155],{"class":154},[66,1697,158],{"class":80},[66,1699,162],{"class":161},[66,1701,165],{"class":80},[66,1703,1704],{"class":161},"keys",[66,1706,1707],{"class":80},"())\n",[66,1709,1710],{"class":68,"line":144},[66,1711,141],{"emptyLinePlaceholder":140},[66,1713,1714,1716,1718,1720,1722,1724],{"class":68,"line":151},[66,1715,155],{"class":154},[66,1717,158],{"class":80},[66,1719,1362],{"class":154},[66,1721,158],{"class":80},[66,1723,232],{"class":161},[66,1725,727],{"class":80},[66,1727,1728,1730,1732,1734],{"class":68,"line":186},[66,1729,155],{"class":154},[66,1731,158],{"class":80},[66,1733,251],{"class":161},[66,1735,280],{"class":80},[66,1737,1738,1740,1742,1744,1746,1749,1751,1753],{"class":68,"line":191},[66,1739,155],{"class":154},[66,1741,158],{"class":80},[66,1743,1611],{"class":623},[66,1745,158],{"class":80},[66,1747,1748],{"class":154},"enumerate",[66,1750,158],{"class":80},[66,1752,232],{"class":161},[66,1754,1755],{"class":80},")))\n",[14,1757,1758],{},"What these help you see:",[29,1760,1761,1767,1773,1779,1785,1791],{},[32,1762,1763,1766],{},[17,1764,1765],{},"print(type(data))"," shows the object type",[32,1768,1769,1772],{},[17,1770,1771],{},"print(data)"," shows the current contents",[32,1774,1775,1778],{},[17,1776,1777],{},"print(data.keys())"," shows dictionary keys",[32,1780,1781,1784],{},[17,1782,1783],{},"print(len(items))"," shows how many items are in the list",[32,1786,1787,1790],{},[17,1788,1789],{},"print(index)"," shows the index you are trying to use",[32,1792,1793,1796],{},[17,1794,1795],{},"print(list(enumerate(items)))"," shows each item with its index",[52,1798,1800],{"id":1799},"common-causes-beginners-mix-up","Common causes beginners mix up",[14,1802,1803],{},"These mistakes often cause confusion:",[29,1805,1806,1809,1812,1815],{},[32,1807,1808],{},"Treating a dictionary like a list",[32,1810,1811],{},"Treating a list like a dictionary",[32,1813,1814],{},"Assuming API or JSON data always contains the same keys",[32,1816,529],{},[14,1818,1819],{},"Other common causes:",[29,1821,1822,1829,1832,1835,1844,1850],{},[32,1823,1824,1825,1828],{},"Using ",[17,1826,1827],{},"data[\"missing_key\"]"," on a dictionary",[32,1830,1831],{},"Misspelling a dictionary key",[32,1833,1834],{},"Expecting JSON data to contain a key that is not present",[32,1836,1824,1837,1840,1841],{},[17,1838,1839],{},"list[index]"," with an index larger than ",[17,1842,1843],{},"len(list) - 1",[32,1845,1846,1847,1849],{},"Accessing index ",[17,1848,322],{}," on an empty list",[32,1851,1852],{},"Using the wrong data type for the operation",[52,1854,1856],{"id":1855},"quick-comparison-table","Quick comparison table",[1858,1859,1860,1882],"table",{},[1861,1862,1863],"thead",{},[1864,1865,1866,1870,1873,1876,1879],"tr",{},[1867,1868,1869],"th",{},"Error",[1867,1871,1872],{},"Usually happens with",[1867,1874,1875],{},"What is missing",[1867,1877,1878],{},"Example",[1867,1880,1881],{},"Common fix",[1883,1884,1885,1910],"tbody",{},[1864,1886,1887,1892,1895,1898,1902],{},[1888,1889,1890],"td",{},[17,1891,19],{},[1888,1893,1894],{},"Dictionary",[1888,1896,1897],{},"Key",[1888,1899,1900],{},[17,1901,339],{},[1888,1903,283,1904,1906,1907],{},[17,1905,659],{}," or check ",[17,1908,1909],{},"if key in dict",[1864,1911,1912,1916,1919,1922,1927],{},[1888,1913,1914],{},[17,1915,23],{},[1888,1917,1918],{},"List or tuple",[1888,1920,1921],{},"Valid position",[1888,1923,1924],{},[17,1925,1926],{},"items[5]",[1888,1928,1929,1930],{},"Check bounds with ",[17,1931,1453],{},[14,1933,1934],{},"Another quick way to remember it:",[29,1936,1937,1944],{},[32,1938,1939,1941,1942],{},[17,1940,19],{}," uses labels like ",[17,1943,313],{},[32,1945,1946,1948,1949,1951,1952],{},[17,1947,23],{}," uses positions like ",[17,1950,322],{}," or ",[17,1953,1954],{},"3",[52,1956,1958],{"id":1957},"faq","FAQ",[653,1960,1962],{"id":1961},"is-keyerror-only-for-dictionaries","Is KeyError only for dictionaries?",[14,1964,1965],{},"Mostly yes for beginner use. It usually appears when a dictionary key is missing.",[653,1967,1969],{"id":1968},"does-indexerror-happen-with-dictionaries","Does IndexError happen with dictionaries?",[14,1971,1972,1973,1975],{},"No. ",[17,1974,23],{}," is for sequences like lists and tuples, not dictionary keys.",[653,1977,1979],{"id":1978},"should-i-use-get-to-avoid-keyerror","Should I use get() to avoid KeyError?",[14,1981,1982,1983,1985,1986,165],{},"Yes, if a missing key is acceptable. ",[17,1984,659],{}," returns a default value instead of raising ",[17,1987,19],{},[14,1989,1990,1991,165],{},"If you want examples, see ",[355,1992,1994],{"href":1993},"\u002Fhow-to\u002Fhow-to-check-if-a-key-exists-in-a-dictionary-in-python\u002F","how to check if a key exists in a dictionary in Python",[653,1996,1998],{"id":1997},"how-do-i-avoid-indexerror-in-a-loop","How do I avoid IndexError in a loop?",[14,2000,2001,2002,165],{},"Loop directly over the list when possible, or make sure the index stays below ",[17,2003,2004],{},"len(list)",[52,2006,2008],{"id":2007},"see-also","See also",[29,2010,2011,2015,2019,2024,2028,2032],{},[32,2012,2013],{},[355,2014,455],{"href":454},[32,2016,2017],{},[355,2018,536],{"href":535},[32,2020,2021],{},[355,2022,2023],{"href":1993},"How to check if a key exists in a dictionary in Python",[32,2025,2026],{},[355,2027,845],{"href":844},[32,2029,2030],{},[355,2031,358],{"href":357},[32,2033,2034],{},[355,2035,362],{"href":361},[2037,2038,2039],"style",{},"html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sptTA, html code.shiki .sptTA{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":62,"searchDepth":108,"depth":108,"links":2041},[2042,2043,2044,2045,2046,2052,2056,2057,2058,2059,2060,2066],{"id":54,"depth":108,"text":55},{"id":290,"depth":108,"text":291},{"id":365,"depth":108,"text":366},{"id":458,"depth":108,"text":459},{"id":539,"depth":108,"text":540,"children":2047},[2048,2050,2051],{"id":655,"depth":137,"text":2049},"Fix 1: Use get()",{"id":849,"depth":137,"text":850},{"id":959,"depth":137,"text":960},{"id":1056,"depth":108,"text":1057,"children":2053},[2054,2055],{"id":1149,"depth":137,"text":1150},{"id":1244,"depth":137,"text":1245},{"id":1457,"depth":108,"text":1458},{"id":1633,"depth":108,"text":1634},{"id":1799,"depth":108,"text":1800},{"id":1855,"depth":108,"text":1856},{"id":1957,"depth":108,"text":1958,"children":2061},[2062,2063,2064,2065],{"id":1961,"depth":137,"text":1962},{"id":1968,"depth":137,"text":1969},{"id":1978,"depth":137,"text":1979},{"id":1997,"depth":137,"text":1998},{"id":2007,"depth":108,"text":2008},"Master keyerror vs indexerror in python explained in our comprehensive Python beginner guide.","md",{},"\u002Ferrors\u002Fkeyerror-vs-indexerror-in-python-explained",{"title":5,"description":2067},"errors\u002Fkeyerror-vs-indexerror-in-python-explained","8llLg-kM4wvHGGk0ot9MrRYCDVuH6sy_1wezHkr-dK0",1777585511078]