|
886 | 886 | }, |
887 | 887 | { |
888 | 888 | "cell_type": "code", |
889 | | - "execution_count": 76, |
| 889 | + "execution_count": 32, |
890 | 890 | "metadata": { |
891 | 891 | "pycharm": { |
892 | 892 | "name": "#%%\n" |
893 | 893 | }, |
894 | 894 | "scrolled": true |
895 | 895 | }, |
896 | | - "outputs": [ |
897 | | - { |
898 | | - "name": "stdout", |
899 | | - "output_type": "stream", |
900 | | - "text": [ |
901 | | - "a [(19, 48), (20, 53)]\r\n", |
902 | | - "Although [(11, 1), (16, 1), (18, 1)]\r\n", |
903 | | - "ambiguity [(14, 16)]\r\n", |
904 | | - "and [(15, 23)]\r\n", |
905 | | - "are [(21, 12)]\r\n", |
906 | | - "aren [(10, 15)]\r\n", |
907 | | - "at [(16, 38)]\r\n", |
908 | | - "bad [(19, 50)]\r\n", |
909 | | - "be [(15, 14), (16, 27), (20, 50)]\r\n", |
910 | | - "beats [(11, 23)]\r\n", |
911 | | - "Beautiful [(3, 1)]\r\n", |
912 | | - "better [(3, 14), (4, 13), (5, 11), (6, 12), (7, 9), (8, 11), (17, 8), (18, 25)]\r\n", |
913 | | - "break [(10, 40)]\r\n", |
914 | | - "by [(1, 20)]\r\n", |
915 | | - "cases [(10, 9)]\r\n", |
916 | | - "complex [(5, 23)]\r\n", |
917 | | - "Complex [(6, 1)]\r\n", |
918 | | - "complicated [(6, 24)]\r\n", |
919 | | - "counts [(9, 13)]\r\n", |
920 | | - "dense [(8, 23)]\r\n" |
921 | | - ] |
922 | | - } |
923 | | - ], |
| 896 | + "outputs": [], |
924 | 897 | "source": [ |
925 | 898 | "# !python3 index0.py zen.txt" |
926 | 899 | ] |
927 | 900 | }, |
928 | 901 | { |
929 | | - "cell_type": "code", |
| 902 | + "cell_type": "markdown", |
930 | 903 | "metadata": { |
931 | 904 | "pycharm": { |
932 | 905 | "name": "#%%\n" |
933 | 906 | } |
934 | 907 | }, |
935 | 908 | "source": [ |
936 | 909 | "#### Example 3-5. [`index.py`](index.py) uses `dict.setdefault` to fetch and update a list of word occurrences from the index in a single line; contrast with Example 3-4." |
937 | | - ], |
938 | | - "execution_count": null, |
939 | | - "outputs": [] |
| 910 | + ] |
940 | 911 | }, |
941 | 912 | { |
942 | 913 | "cell_type": "code", |
943 | 914 | "execution_count": 33, |
944 | 915 | "metadata": { |
945 | | - "scrolled": true, |
946 | | - "pycharm": { |
947 | | - "name": "#%%\n" |
948 | | - } |
| 916 | + "scrolled": true |
949 | 917 | }, |
950 | | - "outputs": [ |
951 | | - { |
952 | | - "name": "stdout", |
953 | | - "output_type": "stream", |
954 | | - "text": [ |
955 | | - "a [(19, 48), (20, 53)]\r\n", |
956 | | - "Although [(11, 1), (16, 1), (18, 1)]\r\n", |
957 | | - "ambiguity [(14, 16)]\r\n", |
958 | | - "and [(15, 23)]\r\n", |
959 | | - "are [(21, 12)]\r\n", |
960 | | - "aren [(10, 15)]\r\n", |
961 | | - "at [(16, 38)]\r\n", |
962 | | - "bad [(19, 50)]\r\n", |
963 | | - "be [(15, 14), (16, 27), (20, 50)]\r\n", |
964 | | - "beats [(11, 23)]\r\n", |
965 | | - "Beautiful [(3, 1)]\r\n", |
966 | | - "better [(3, 14), (4, 13), (5, 11), (6, 12), (7, 9), (8, 11), (17, 8), (18, 25)]\r\n", |
967 | | - "break [(10, 40)]\r\n", |
968 | | - "by [(1, 20)]\r\n", |
969 | | - "cases [(10, 9)]\r\n", |
970 | | - "complex [(5, 23)]\r\n", |
971 | | - "Complex [(6, 1)]\r\n", |
972 | | - "complicated [(6, 24)]\r\n", |
973 | | - "counts [(9, 13)]\r\n", |
974 | | - "dense [(8, 23)]\r\n", |
975 | | - "do [(15, 64), (21, 48)]\r\n", |
976 | | - "Dutch [(16, 61)]\r\n", |
977 | | - "easy [(20, 26)]\r\n", |
978 | | - "enough [(10, 30)]\r\n", |
979 | | - "Errors [(12, 1)]\r\n", |
980 | | - "explain [(19, 34), (20, 34)]\r\n", |
981 | | - "Explicit [(4, 1)]\r\n", |
982 | | - "explicitly [(13, 8)]\r\n", |
983 | | - "face [(14, 8)]\r\n", |
984 | | - "first [(16, 41)]\r\n", |
985 | | - "Flat [(7, 1)]\r\n", |
986 | | - "good [(20, 55)]\r\n", |
987 | | - "great [(21, 28)]\r\n", |
988 | | - "guess [(14, 52)]\r\n", |
989 | | - "hard [(19, 26)]\r\n", |
990 | | - "honking [(21, 20)]\r\n", |
991 | | - "idea [(19, 54), (20, 60), (21, 34)]\r\n", |
992 | | - "If [(19, 1), (20, 1)]\r\n", |
993 | | - "implementation [(19, 8), (20, 8)]\r\n", |
994 | | - "implicit [(4, 25)]\r\n", |
995 | | - "In [(14, 1)]\r\n", |
996 | | - "is [(3, 11), (4, 10), (5, 8), (6, 9), (7, 6), (8, 8), (17, 5), (18, 16), (19, 23), (20, 23)]\r\n", |
997 | | - "it [(15, 67), (19, 43), (20, 43)]\r\n", |
998 | | - "let [(21, 42)]\r\n", |
999 | | - "may [(16, 19), (20, 46)]\r\n", |
1000 | | - "more [(21, 51)]\r\n", |
1001 | | - "Namespaces [(21, 1)]\r\n", |
1002 | | - "nested [(7, 21)]\r\n", |
1003 | | - "never [(12, 15), (17, 20), (18, 10)]\r\n", |
1004 | | - "not [(16, 23)]\r\n", |
1005 | | - "Now [(17, 1)]\r\n", |
1006 | | - "now [(18, 45)]\r\n", |
1007 | | - "obvious [(15, 49), (16, 30)]\r\n", |
1008 | | - "of [(1, 9), (14, 13), (21, 56)]\r\n", |
1009 | | - "often [(18, 19)]\r\n", |
1010 | | - "one [(15, 17), (15, 43), (21, 16)]\r\n", |
1011 | | - "only [(15, 38)]\r\n", |
1012 | | - "pass [(12, 21)]\r\n", |
1013 | | - "Peters [(1, 27)]\r\n", |
1014 | | - "practicality [(11, 10)]\r\n", |
1015 | | - "preferably [(15, 27)]\r\n", |
1016 | | - "purity [(11, 29)]\r\n", |
1017 | | - "Python [(1, 12)]\r\n", |
1018 | | - "re [(16, 58)]\r\n", |
1019 | | - "Readability [(9, 1)]\r\n", |
1020 | | - "refuse [(14, 27)]\r\n", |
1021 | | - "right [(18, 38)]\r\n", |
1022 | | - "rules [(10, 50)]\r\n", |
1023 | | - "s [(19, 46), (21, 46)]\r\n", |
1024 | | - "should [(12, 8), (15, 7)]\r\n", |
1025 | | - "silenced [(13, 19)]\r\n", |
1026 | | - "silently [(12, 26)]\r\n", |
1027 | | - "Simple [(5, 1)]\r\n", |
1028 | | - "Sparse [(8, 1)]\r\n", |
1029 | | - "Special [(10, 1)]\r\n", |
1030 | | - "special [(10, 22)]\r\n", |
1031 | | - "t [(10, 20)]\r\n", |
1032 | | - "temptation [(14, 38)]\r\n", |
1033 | | - "than [(3, 21), (4, 20), (5, 18), (6, 19), (7, 16), (8, 18), (17, 15), (18, 32)]\r\n", |
1034 | | - "that [(16, 10)]\r\n", |
1035 | | - "The [(1, 1)]\r\n", |
1036 | | - "the [(10, 46), (14, 4), (14, 34), (19, 4), (20, 4)]\r\n", |
1037 | | - "There [(15, 1)]\r\n", |
1038 | | - "those [(21, 59)]\r\n", |
1039 | | - "Tim [(1, 23)]\r\n", |
1040 | | - "to [(10, 37), (14, 49), (15, 61), (19, 31), (20, 31)]\r\n", |
1041 | | - "ugly [(3, 26)]\r\n", |
1042 | | - "Unless [(13, 1)]\r\n", |
1043 | | - "unless [(16, 47)]\r\n", |
1044 | | - "way [(15, 57), (16, 15)]\r\n", |
1045 | | - "you [(16, 54)]\r\n", |
1046 | | - "Zen [(1, 5)]\r\n" |
1047 | | - ] |
1048 | | - } |
1049 | | - ], |
| 918 | + "outputs": [], |
1050 | 919 | "source": [ |
1051 | 920 | "# python3 index.py zen.txt" |
1052 | 921 | ] |
1053 | 922 | }, |
1054 | 923 | { |
1055 | 924 | "cell_type": "markdown", |
1056 | | - "metadata": { |
1057 | | - "pycharm": { |
1058 | | - "name": "#%% md\n" |
1059 | | - } |
1060 | | - }, |
| 925 | + "metadata": {}, |
1061 | 926 | "source": [ |
1062 | 927 | "## Automatic handling of Missing Keys" |
1063 | 928 | ] |
1064 | 929 | }, |
1065 | 930 | { |
1066 | 931 | "cell_type": "markdown", |
1067 | | - "metadata": { |
1068 | | - "pycharm": { |
1069 | | - "name": "#%% md\n" |
1070 | | - } |
1071 | | - }, |
| 932 | + "metadata": {}, |
1072 | 933 | "source": [ |
1073 | 934 | "### `defaultdict`: Another take on missing keys" |
1074 | 935 | ] |
1075 | 936 | }, |
1076 | 937 | { |
1077 | 938 | "cell_type": "markdown", |
1078 | | - "metadata": { |
1079 | | - "pycharm": { |
1080 | | - "name": "#%% md\n" |
1081 | | - } |
1082 | | - }, |
| 939 | + "metadata": {}, |
1083 | 940 | "source": [ |
1084 | 941 | "#### Example 3-6. [`index_default.py`](index_default.py): using defaultdict instead of the setdefault method" |
1085 | 942 | ] |
|
1093 | 950 | "name": "#%%\n" |
1094 | 951 | } |
1095 | 952 | }, |
1096 | | - "outputs": [ |
1097 | | - { |
1098 | | - "name": "stdout", |
1099 | | - "output_type": "stream", |
1100 | | - "text": [ |
1101 | | - "a [(19, 48), (20, 53)]\r\n", |
1102 | | - "Although [(11, 1), (16, 1), (18, 1)]\r\n", |
1103 | | - "ambiguity [(14, 16)]\r\n", |
1104 | | - "and [(15, 23)]\r\n", |
1105 | | - "are [(21, 12)]\r\n", |
1106 | | - "aren [(10, 15)]\r\n", |
1107 | | - "at [(16, 38)]\r\n", |
1108 | | - "bad [(19, 50)]\r\n", |
1109 | | - "be [(15, 14), (16, 27), (20, 50)]\r\n", |
1110 | | - "beats [(11, 23)]\r\n", |
1111 | | - "Beautiful [(3, 1)]\r\n", |
1112 | | - "better [(3, 14), (4, 13), (5, 11), (6, 12), (7, 9), (8, 11), (17, 8), (18, 25)]\r\n", |
1113 | | - "break [(10, 40)]\r\n", |
1114 | | - "by [(1, 20)]\r\n", |
1115 | | - "cases [(10, 9)]\r\n", |
1116 | | - "complex [(5, 23)]\r\n", |
1117 | | - "Complex [(6, 1)]\r\n", |
1118 | | - "complicated [(6, 24)]\r\n", |
1119 | | - "counts [(9, 13)]\r\n", |
1120 | | - "dense [(8, 23)]\r\n", |
1121 | | - "do [(15, 64), (21, 48)]\r\n", |
1122 | | - "Dutch [(16, 61)]\r\n", |
1123 | | - "easy [(20, 26)]\r\n", |
1124 | | - "enough [(10, 30)]\r\n", |
1125 | | - "Errors [(12, 1)]\r\n", |
1126 | | - "explain [(19, 34), (20, 34)]\r\n", |
1127 | | - "Explicit [(4, 1)]\r\n", |
1128 | | - "explicitly [(13, 8)]\r\n", |
1129 | | - "face [(14, 8)]\r\n", |
1130 | | - "first [(16, 41)]\r\n", |
1131 | | - "Flat [(7, 1)]\r\n", |
1132 | | - "good [(20, 55)]\r\n", |
1133 | | - "great [(21, 28)]\r\n", |
1134 | | - "guess [(14, 52)]\r\n", |
1135 | | - "hard [(19, 26)]\r\n", |
1136 | | - "honking [(21, 20)]\r\n", |
1137 | | - "idea [(19, 54), (20, 60), (21, 34)]\r\n", |
1138 | | - "If [(19, 1), (20, 1)]\r\n", |
1139 | | - "implementation [(19, 8), (20, 8)]\r\n", |
1140 | | - "implicit [(4, 25)]\r\n", |
1141 | | - "In [(14, 1)]\r\n", |
1142 | | - "is [(3, 11), (4, 10), (5, 8), (6, 9), (7, 6), (8, 8), (17, 5), (18, 16), (19, 23), (20, 23)]\r\n", |
1143 | | - "it [(15, 67), (19, 43), (20, 43)]\r\n", |
1144 | | - "let [(21, 42)]\r\n", |
1145 | | - "may [(16, 19), (20, 46)]\r\n", |
1146 | | - "more [(21, 51)]\r\n", |
1147 | | - "Namespaces [(21, 1)]\r\n", |
1148 | | - "nested [(7, 21)]\r\n", |
1149 | | - "never [(12, 15), (17, 20), (18, 10)]\r\n", |
1150 | | - "not [(16, 23)]\r\n", |
1151 | | - "Now [(17, 1)]\r\n", |
1152 | | - "now [(18, 45)]\r\n", |
1153 | | - "obvious [(15, 49), (16, 30)]\r\n", |
1154 | | - "of [(1, 9), (14, 13), (21, 56)]\r\n", |
1155 | | - "often [(18, 19)]\r\n", |
1156 | | - "one [(15, 17), (15, 43), (21, 16)]\r\n", |
1157 | | - "only [(15, 38)]\r\n", |
1158 | | - "pass [(12, 21)]\r\n", |
1159 | | - "Peters [(1, 27)]\r\n", |
1160 | | - "practicality [(11, 10)]\r\n", |
1161 | | - "preferably [(15, 27)]\r\n", |
1162 | | - "purity [(11, 29)]\r\n", |
1163 | | - "Python [(1, 12)]\r\n", |
1164 | | - "re [(16, 58)]\r\n", |
1165 | | - "Readability [(9, 1)]\r\n", |
1166 | | - "refuse [(14, 27)]\r\n", |
1167 | | - "right [(18, 38)]\r\n", |
1168 | | - "rules [(10, 50)]\r\n", |
1169 | | - "s [(19, 46), (21, 46)]\r\n", |
1170 | | - "should [(12, 8), (15, 7)]\r\n", |
1171 | | - "silenced [(13, 19)]\r\n", |
1172 | | - "silently [(12, 26)]\r\n", |
1173 | | - "Simple [(5, 1)]\r\n", |
1174 | | - "Sparse [(8, 1)]\r\n", |
1175 | | - "Special [(10, 1)]\r\n", |
1176 | | - "special [(10, 22)]\r\n", |
1177 | | - "t [(10, 20)]\r\n", |
1178 | | - "temptation [(14, 38)]\r\n", |
1179 | | - "than [(3, 21), (4, 20), (5, 18), (6, 19), (7, 16), (8, 18), (17, 15), (18, 32)]\r\n", |
1180 | | - "that [(16, 10)]\r\n", |
1181 | | - "The [(1, 1)]\r\n", |
1182 | | - "the [(10, 46), (14, 4), (14, 34), (19, 4), (20, 4)]\r\n", |
1183 | | - "There [(15, 1)]\r\n", |
1184 | | - "those [(21, 59)]\r\n", |
1185 | | - "Tim [(1, 23)]\r\n", |
1186 | | - "to [(10, 37), (14, 49), (15, 61), (19, 31), (20, 31)]\r\n", |
1187 | | - "ugly [(3, 26)]\r\n", |
1188 | | - "Unless [(13, 1)]\r\n", |
1189 | | - "unless [(16, 47)]\r\n", |
1190 | | - "way [(15, 57), (16, 15)]\r\n", |
1191 | | - "you [(16, 54)]\r\n", |
1192 | | - "Zen [(1, 5)]\r\n" |
1193 | | - ] |
1194 | | - } |
1195 | | - ], |
| 953 | + "outputs": [], |
1196 | 954 | "source": [ |
1197 | | - "#!python index_default.py zen.txt" |
| 955 | + "# !python index_default.py zen.txt" |
1198 | 956 | ] |
1199 | 957 | }, |
1200 | 958 | { |
|
1757 | 1515 | { |
1758 | 1516 | "data": { |
1759 | 1517 | "text/plain": [ |
1760 | | - "<dict_reversevalueiterator at 0x7f95ac5c5e40>" |
| 1518 | + "<dict_reversevalueiterator at 0x7fd2b88ca0c0>" |
1761 | 1519 | ] |
1762 | 1520 | }, |
1763 | 1521 | "execution_count": 58, |
|
1897 | 1655 | { |
1898 | 1656 | "data": { |
1899 | 1657 | "text/plain": [ |
1900 | | - "['bacon', 'eggs', 'spam']" |
| 1658 | + "['bacon', 'spam', 'eggs']" |
1901 | 1659 | ] |
1902 | 1660 | }, |
1903 | 1661 | "execution_count": 64, |
|
0 commit comments