Skip to content

Commit 4d97ce0

Browse files
committed
defaultdict
1 parent 409d953 commit 4d97ce0

2 files changed

Lines changed: 146 additions & 28 deletions

File tree

.ipynb_checkpoints/timeit_tests-checkpoint.ipynb

Lines changed: 73 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"metadata": {
33
"name": "",
4-
"signature": "sha256:8dc4f91bc6a88e15ab0d25fac35b9a7645a7149b5ab4e1e15b2b372362e82ae2"
4+
"signature": "sha256:1dc4a14b00afc36bd728a4f8d00ea951e5c9376232218e2e5a36e653e875fbe5"
55
},
66
"nbformat": 3,
77
"nbformat_minor": 0,
@@ -891,6 +891,13 @@
891891
" d[e] += 1\n",
892892
" return d\n",
893893
"\n",
894+
"def add_element_get(elements):\n",
895+
" d = dict()\n",
896+
" for e in elements:\n",
897+
" d[e] = d.get(e, 1) + 1\n",
898+
" return d\n",
899+
"\n",
900+
"\n",
894901
"random.seed(123)\n",
895902
"\n",
896903
"print('Results for 100 integers in range 1-10') \n",
@@ -899,20 +906,23 @@
899906
"%timeit add_element_check2(rand_ints)\n",
900907
"%timeit add_element_except(rand_ints)\n",
901908
"%timeit add_element_defaultdict(rand_ints)\n",
909+
"%timeit add_element_get(rand_ints)\n",
902910
"\n",
903911
"print('\\nResults for 1000 integers in range 1-5') \n",
904912
"rand_ints = [random.randrange(1, 5) for i in range(1000)]\n",
905913
"%timeit add_element_check1(rand_ints)\n",
906914
"%timeit add_element_check2(rand_ints)\n",
907915
"%timeit add_element_except(rand_ints)\n",
908916
"%timeit add_element_defaultdict(rand_ints)\n",
917+
"%timeit add_element_get(rand_ints)\n",
909918
"\n",
910919
"print('\\nResults for 1000 integers in range 1-1000') \n",
911920
"rand_ints = [random.randrange(1, 1000) for i in range(1000)]\n",
912921
"%timeit add_element_check1(rand_ints)\n",
913922
"%timeit add_element_check2(rand_ints)\n",
914923
"%timeit add_element_except(rand_ints)\n",
915-
"%timeit add_element_defaultdict(rand_ints)"
924+
"%timeit add_element_defaultdict(rand_ints)\n",
925+
"%timeit add_element_get(rand_ints)"
916926
],
917927
"language": "python",
918928
"metadata": {},
@@ -922,7 +932,7 @@
922932
"stream": "stdout",
923933
"text": [
924934
"Results for 100 integers in range 1-10\n",
925-
"10000 loops, best of 3: 24.6 \u00b5s per loop"
935+
"10000 loops, best of 3: 28 \u00b5s per loop"
926936
]
927937
},
928938
{
@@ -938,15 +948,23 @@
938948
"stream": "stdout",
939949
"text": [
940950
"\n",
941-
"10000 loops, best of 3: 25.4 \u00b5s per loop"
951+
"10000 loops, best of 3: 26.5 \u00b5s per loop"
952+
]
953+
},
954+
{
955+
"output_type": "stream",
956+
"stream": "stdout",
957+
"text": [
958+
"\n",
959+
"10000 loops, best of 3: 22.8 \u00b5s per loop"
942960
]
943961
},
944962
{
945963
"output_type": "stream",
946964
"stream": "stdout",
947965
"text": [
948966
"\n",
949-
"10000 loops, best of 3: 23 \u00b5s per loop"
967+
"10000 loops, best of 3: 33.3 \u00b5s per loop"
950968
]
951969
},
952970
{
@@ -956,31 +974,39 @@
956974
"\n",
957975
"\n",
958976
"Results for 1000 integers in range 1-5\n",
959-
"1000 loops, best of 3: 236 \u00b5s per loop"
977+
"1000 loops, best of 3: 242 \u00b5s per loop"
960978
]
961979
},
962980
{
963981
"output_type": "stream",
964982
"stream": "stdout",
965983
"text": [
966984
"\n",
967-
"1000 loops, best of 3: 235 \u00b5s per loop"
985+
"1000 loops, best of 3: 239 \u00b5s per loop"
968986
]
969987
},
970988
{
971989
"output_type": "stream",
972990
"stream": "stdout",
973991
"text": [
974992
"\n",
975-
"1000 loops, best of 3: 207 \u00b5s per loop"
993+
"1000 loops, best of 3: 203 \u00b5s per loop"
976994
]
977995
},
978996
{
979997
"output_type": "stream",
980998
"stream": "stdout",
981999
"text": [
9821000
"\n",
983-
"10000 loops, best of 3: 177 \u00b5s per loop"
1001+
"10000 loops, best of 3: 184 \u00b5s per loop"
1002+
]
1003+
},
1004+
{
1005+
"output_type": "stream",
1006+
"stream": "stdout",
1007+
"text": [
1008+
"\n",
1009+
"1000 loops, best of 3: 350 \u00b5s per loop"
9841010
]
9851011
},
9861012
{
@@ -990,31 +1016,39 @@
9901016
"\n",
9911017
"\n",
9921018
"Results for 1000 integers in range 1-1000\n",
993-
"1000 loops, best of 3: 268 \u00b5s per loop"
1019+
"1000 loops, best of 3: 262 \u00b5s per loop"
1020+
]
1021+
},
1022+
{
1023+
"output_type": "stream",
1024+
"stream": "stdout",
1025+
"text": [
1026+
"\n",
1027+
"1000 loops, best of 3: 370 \u00b5s per loop"
9941028
]
9951029
},
9961030
{
9971031
"output_type": "stream",
9981032
"stream": "stdout",
9991033
"text": [
10001034
"\n",
1001-
"1000 loops, best of 3: 377 \u00b5s per loop"
1035+
"1000 loops, best of 3: 502 \u00b5s per loop"
10021036
]
10031037
},
10041038
{
10051039
"output_type": "stream",
10061040
"stream": "stdout",
10071041
"text": [
10081042
"\n",
1009-
"1000 loops, best of 3: 511 \u00b5s per loop"
1043+
"1000 loops, best of 3: 422 \u00b5s per loop"
10101044
]
10111045
},
10121046
{
10131047
"output_type": "stream",
10141048
"stream": "stdout",
10151049
"text": [
10161050
"\n",
1017-
"1000 loops, best of 3: 410 \u00b5s per loop"
1051+
"1000 loops, best of 3: 373 \u00b5s per loop"
10181052
]
10191053
},
10201054
{
@@ -1025,7 +1059,32 @@
10251059
]
10261060
}
10271061
],
1028-
"prompt_number": 16
1062+
"prompt_number": 25
1063+
},
1064+
{
1065+
"cell_type": "code",
1066+
"collapsed": false,
1067+
"input": [
1068+
"def add_element_get(elements):\n",
1069+
" d = dict()\n",
1070+
" for e in elements:\n",
1071+
" d[e] = d.get(e, 1) + 1\n",
1072+
" return d\n",
1073+
"\n",
1074+
"print(add_element_get(rand_ints))"
1075+
],
1076+
"language": "python",
1077+
"metadata": {},
1078+
"outputs": [
1079+
{
1080+
"output_type": "stream",
1081+
"stream": "stdout",
1082+
"text": [
1083+
"{1: 17, 2: 10, 3: 11, 4: 7, 5: 9, 6: 14, 7: 13, 8: 13, 9: 15}\n"
1084+
]
1085+
}
1086+
],
1087+
"prompt_number": 24
10291088
},
10301089
{
10311090
"cell_type": "markdown",

0 commit comments

Comments
 (0)