Skip to content

Instantly share code, notes, and snippets.

@gpelouze
Created March 19, 2024 14:34
Show Gist options
  • Save gpelouze/7dcc95a4beb78276f324ff1ab3591a46 to your computer and use it in GitHub Desktop.
Save gpelouze/7dcc95a4beb78276f324ff1ab3591a46 to your computer and use it in GitHub Desktop.
Splitter semaphore controle (Berend Wijers)
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "f1dca478-dfc6-420e-8f09-0013019b0d59",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"len(DEBUG_INPUT_LIST)=1132\n"
]
}
],
"source": [
"# For testing purposes - DO NOT CONTAINERIZE\n",
"# Length of the test list\n",
"DEBUG_INPUT_LIST_LENGTH = 1132\n",
"# Determine the padding for the dummy strings for filling the list\n",
"zpad_int = len(str(DEBUG_INPUT_LIST_LENGTH))\n",
"# Create an input list with \"text\" and a number\n",
"DEBUG_INPUT_LIST = [f\"text{str(i).zfill(zpad_int)}\" for i in range(0,DEBUG_INPUT_LIST_LENGTH)]\n",
"# Define param_semaphore\n",
"param_semaphore = 5\n",
"# Debug purposes, print the length of the list\n",
"print(f\"{len(DEBUG_INPUT_LIST)=}\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "c79a1142-5a89-4ec8-aa96-ead66706c3c0",
"metadata": {},
"outputs": [],
"source": [
"# New splitter with semaphore \n",
"def rewrite_list_nested(in_list,semaphore):\n",
" \"\"\"\n",
" B. Wijers \n",
" 23-02-2024\n",
" b.c.wijers@uva.nl\n",
" for Lifewatch - NaaVRE\n",
" \n",
" Splitter\n",
" input:\n",
" list with elements\n",
" TYPE: list\n",
" output:\n",
" list with semaphore number of nested elements\n",
" TYPE: List[list]\n",
" Notes:\n",
" Will attempt to make an even split.\n",
" In case no even splits can be made, the last\n",
" set of elements which could not be split\n",
" are evenly distributed across the nested lists.\n",
" Even distribution means that each nested list\n",
" receives up to a maximum of one extra element.\n",
" In these cases the nested lists have varying\n",
" amount of elements but will never exceed the\n",
" difference by more than 1 element. \n",
" \"\"\"\n",
" out_list = []\n",
" # Get the length of the list\n",
" in_list_len = len(in_list)\n",
" # Expecting integers so we can use floor division\n",
" # Determine the maximum even-splits we can do\n",
" worker_chunk_size = in_list_len // semaphore \n",
" # Determine how many elements could not be split\n",
" leftovers = in_list_len%semaphore\n",
" while in_list:\n",
" # Set leftover to 0\n",
" leftover = 0\n",
" # If we could not make even-split\n",
" if leftovers:\n",
" # Can not exceed one element addition per split\n",
" leftover = 1\n",
" # Update the number of leftovers\n",
" leftovers -= leftover\n",
" # Add the nested list. If there was a leftover, add it\n",
" out_list.append(in_list[:worker_chunk_size+leftover])\n",
" # Update the input list and remove the elements we added to \n",
" # output list\n",
" in_list = in_list[worker_chunk_size+leftover:]\n",
" return out_list\n",
"\n",
"out_list = rewrite_list_nested(DEBUG_INPUT_LIST,semaphore=param_semaphore)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "7b7e5ec9-8c0f-4496-af34-4f58d9a8eb1d",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"nested_list0=['text0000', 'text0001', 'text0002', 'text0003', 'text0004', 'text0005', 'text0006', 'text0007', 'text0008', 'text0009', 'text0010', 'text0011', 'text0012', 'text0013', 'text0014', 'text0015', 'text0016', 'text0017', 'text0018', 'text0019', 'text0020', 'text0021', 'text0022', 'text0023', 'text0024', 'text0025', 'text0026', 'text0027', 'text0028', 'text0029', 'text0030', 'text0031', 'text0032', 'text0033', 'text0034', 'text0035', 'text0036', 'text0037', 'text0038', 'text0039', 'text0040', 'text0041', 'text0042', 'text0043', 'text0044', 'text0045', 'text0046', 'text0047', 'text0048', 'text0049', 'text0050', 'text0051', 'text0052', 'text0053', 'text0054', 'text0055', 'text0056', 'text0057', 'text0058', 'text0059', 'text0060', 'text0061', 'text0062', 'text0063', 'text0064', 'text0065', 'text0066', 'text0067', 'text0068', 'text0069', 'text0070', 'text0071', 'text0072', 'text0073', 'text0074', 'text0075', 'text0076', 'text0077', 'text0078', 'text0079', 'text0080', 'text0081', 'text0082', 'text0083', 'text0084', 'text0085', 'text0086', 'text0087', 'text0088', 'text0089', 'text0090', 'text0091', 'text0092', 'text0093', 'text0094', 'text0095', 'text0096', 'text0097', 'text0098', 'text0099', 'text0100', 'text0101', 'text0102', 'text0103', 'text0104', 'text0105', 'text0106', 'text0107', 'text0108', 'text0109', 'text0110', 'text0111', 'text0112', 'text0113', 'text0114', 'text0115', 'text0116', 'text0117', 'text0118', 'text0119', 'text0120', 'text0121', 'text0122', 'text0123', 'text0124', 'text0125', 'text0126', 'text0127', 'text0128', 'text0129', 'text0130', 'text0131', 'text0132', 'text0133', 'text0134', 'text0135', 'text0136', 'text0137', 'text0138', 'text0139', 'text0140', 'text0141', 'text0142', 'text0143', 'text0144', 'text0145', 'text0146', 'text0147', 'text0148', 'text0149', 'text0150', 'text0151', 'text0152', 'text0153', 'text0154', 'text0155', 'text0156', 'text0157', 'text0158', 'text0159', 'text0160', 'text0161', 'text0162', 'text0163', 'text0164', 'text0165', 'text0166', 'text0167', 'text0168', 'text0169', 'text0170', 'text0171', 'text0172', 'text0173', 'text0174', 'text0175', 'text0176', 'text0177', 'text0178', 'text0179', 'text0180', 'text0181', 'text0182', 'text0183', 'text0184', 'text0185', 'text0186', 'text0187', 'text0188', 'text0189', 'text0190', 'text0191', 'text0192', 'text0193', 'text0194', 'text0195', 'text0196', 'text0197', 'text0198', 'text0199', 'text0200', 'text0201', 'text0202', 'text0203', 'text0204', 'text0205', 'text0206', 'text0207', 'text0208', 'text0209', 'text0210', 'text0211', 'text0212', 'text0213', 'text0214', 'text0215', 'text0216', 'text0217', 'text0218', 'text0219', 'text0220', 'text0221', 'text0222', 'text0223', 'text0224', 'text0225', 'text0226'] - len(nested_list)=227\n",
"nested_list1=['text0227', 'text0228', 'text0229', 'text0230', 'text0231', 'text0232', 'text0233', 'text0234', 'text0235', 'text0236', 'text0237', 'text0238', 'text0239', 'text0240', 'text0241', 'text0242', 'text0243', 'text0244', 'text0245', 'text0246', 'text0247', 'text0248', 'text0249', 'text0250', 'text0251', 'text0252', 'text0253', 'text0254', 'text0255', 'text0256', 'text0257', 'text0258', 'text0259', 'text0260', 'text0261', 'text0262', 'text0263', 'text0264', 'text0265', 'text0266', 'text0267', 'text0268', 'text0269', 'text0270', 'text0271', 'text0272', 'text0273', 'text0274', 'text0275', 'text0276', 'text0277', 'text0278', 'text0279', 'text0280', 'text0281', 'text0282', 'text0283', 'text0284', 'text0285', 'text0286', 'text0287', 'text0288', 'text0289', 'text0290', 'text0291', 'text0292', 'text0293', 'text0294', 'text0295', 'text0296', 'text0297', 'text0298', 'text0299', 'text0300', 'text0301', 'text0302', 'text0303', 'text0304', 'text0305', 'text0306', 'text0307', 'text0308', 'text0309', 'text0310', 'text0311', 'text0312', 'text0313', 'text0314', 'text0315', 'text0316', 'text0317', 'text0318', 'text0319', 'text0320', 'text0321', 'text0322', 'text0323', 'text0324', 'text0325', 'text0326', 'text0327', 'text0328', 'text0329', 'text0330', 'text0331', 'text0332', 'text0333', 'text0334', 'text0335', 'text0336', 'text0337', 'text0338', 'text0339', 'text0340', 'text0341', 'text0342', 'text0343', 'text0344', 'text0345', 'text0346', 'text0347', 'text0348', 'text0349', 'text0350', 'text0351', 'text0352', 'text0353', 'text0354', 'text0355', 'text0356', 'text0357', 'text0358', 'text0359', 'text0360', 'text0361', 'text0362', 'text0363', 'text0364', 'text0365', 'text0366', 'text0367', 'text0368', 'text0369', 'text0370', 'text0371', 'text0372', 'text0373', 'text0374', 'text0375', 'text0376', 'text0377', 'text0378', 'text0379', 'text0380', 'text0381', 'text0382', 'text0383', 'text0384', 'text0385', 'text0386', 'text0387', 'text0388', 'text0389', 'text0390', 'text0391', 'text0392', 'text0393', 'text0394', 'text0395', 'text0396', 'text0397', 'text0398', 'text0399', 'text0400', 'text0401', 'text0402', 'text0403', 'text0404', 'text0405', 'text0406', 'text0407', 'text0408', 'text0409', 'text0410', 'text0411', 'text0412', 'text0413', 'text0414', 'text0415', 'text0416', 'text0417', 'text0418', 'text0419', 'text0420', 'text0421', 'text0422', 'text0423', 'text0424', 'text0425', 'text0426', 'text0427', 'text0428', 'text0429', 'text0430', 'text0431', 'text0432', 'text0433', 'text0434', 'text0435', 'text0436', 'text0437', 'text0438', 'text0439', 'text0440', 'text0441', 'text0442', 'text0443', 'text0444', 'text0445', 'text0446', 'text0447', 'text0448', 'text0449', 'text0450', 'text0451', 'text0452', 'text0453'] - len(nested_list)=227\n",
"nested_list2=['text0454', 'text0455', 'text0456', 'text0457', 'text0458', 'text0459', 'text0460', 'text0461', 'text0462', 'text0463', 'text0464', 'text0465', 'text0466', 'text0467', 'text0468', 'text0469', 'text0470', 'text0471', 'text0472', 'text0473', 'text0474', 'text0475', 'text0476', 'text0477', 'text0478', 'text0479', 'text0480', 'text0481', 'text0482', 'text0483', 'text0484', 'text0485', 'text0486', 'text0487', 'text0488', 'text0489', 'text0490', 'text0491', 'text0492', 'text0493', 'text0494', 'text0495', 'text0496', 'text0497', 'text0498', 'text0499', 'text0500', 'text0501', 'text0502', 'text0503', 'text0504', 'text0505', 'text0506', 'text0507', 'text0508', 'text0509', 'text0510', 'text0511', 'text0512', 'text0513', 'text0514', 'text0515', 'text0516', 'text0517', 'text0518', 'text0519', 'text0520', 'text0521', 'text0522', 'text0523', 'text0524', 'text0525', 'text0526', 'text0527', 'text0528', 'text0529', 'text0530', 'text0531', 'text0532', 'text0533', 'text0534', 'text0535', 'text0536', 'text0537', 'text0538', 'text0539', 'text0540', 'text0541', 'text0542', 'text0543', 'text0544', 'text0545', 'text0546', 'text0547', 'text0548', 'text0549', 'text0550', 'text0551', 'text0552', 'text0553', 'text0554', 'text0555', 'text0556', 'text0557', 'text0558', 'text0559', 'text0560', 'text0561', 'text0562', 'text0563', 'text0564', 'text0565', 'text0566', 'text0567', 'text0568', 'text0569', 'text0570', 'text0571', 'text0572', 'text0573', 'text0574', 'text0575', 'text0576', 'text0577', 'text0578', 'text0579', 'text0580', 'text0581', 'text0582', 'text0583', 'text0584', 'text0585', 'text0586', 'text0587', 'text0588', 'text0589', 'text0590', 'text0591', 'text0592', 'text0593', 'text0594', 'text0595', 'text0596', 'text0597', 'text0598', 'text0599', 'text0600', 'text0601', 'text0602', 'text0603', 'text0604', 'text0605', 'text0606', 'text0607', 'text0608', 'text0609', 'text0610', 'text0611', 'text0612', 'text0613', 'text0614', 'text0615', 'text0616', 'text0617', 'text0618', 'text0619', 'text0620', 'text0621', 'text0622', 'text0623', 'text0624', 'text0625', 'text0626', 'text0627', 'text0628', 'text0629', 'text0630', 'text0631', 'text0632', 'text0633', 'text0634', 'text0635', 'text0636', 'text0637', 'text0638', 'text0639', 'text0640', 'text0641', 'text0642', 'text0643', 'text0644', 'text0645', 'text0646', 'text0647', 'text0648', 'text0649', 'text0650', 'text0651', 'text0652', 'text0653', 'text0654', 'text0655', 'text0656', 'text0657', 'text0658', 'text0659', 'text0660', 'text0661', 'text0662', 'text0663', 'text0664', 'text0665', 'text0666', 'text0667', 'text0668', 'text0669', 'text0670', 'text0671', 'text0672', 'text0673', 'text0674', 'text0675', 'text0676', 'text0677', 'text0678', 'text0679'] - len(nested_list)=226\n",
"nested_list3=['text0680', 'text0681', 'text0682', 'text0683', 'text0684', 'text0685', 'text0686', 'text0687', 'text0688', 'text0689', 'text0690', 'text0691', 'text0692', 'text0693', 'text0694', 'text0695', 'text0696', 'text0697', 'text0698', 'text0699', 'text0700', 'text0701', 'text0702', 'text0703', 'text0704', 'text0705', 'text0706', 'text0707', 'text0708', 'text0709', 'text0710', 'text0711', 'text0712', 'text0713', 'text0714', 'text0715', 'text0716', 'text0717', 'text0718', 'text0719', 'text0720', 'text0721', 'text0722', 'text0723', 'text0724', 'text0725', 'text0726', 'text0727', 'text0728', 'text0729', 'text0730', 'text0731', 'text0732', 'text0733', 'text0734', 'text0735', 'text0736', 'text0737', 'text0738', 'text0739', 'text0740', 'text0741', 'text0742', 'text0743', 'text0744', 'text0745', 'text0746', 'text0747', 'text0748', 'text0749', 'text0750', 'text0751', 'text0752', 'text0753', 'text0754', 'text0755', 'text0756', 'text0757', 'text0758', 'text0759', 'text0760', 'text0761', 'text0762', 'text0763', 'text0764', 'text0765', 'text0766', 'text0767', 'text0768', 'text0769', 'text0770', 'text0771', 'text0772', 'text0773', 'text0774', 'text0775', 'text0776', 'text0777', 'text0778', 'text0779', 'text0780', 'text0781', 'text0782', 'text0783', 'text0784', 'text0785', 'text0786', 'text0787', 'text0788', 'text0789', 'text0790', 'text0791', 'text0792', 'text0793', 'text0794', 'text0795', 'text0796', 'text0797', 'text0798', 'text0799', 'text0800', 'text0801', 'text0802', 'text0803', 'text0804', 'text0805', 'text0806', 'text0807', 'text0808', 'text0809', 'text0810', 'text0811', 'text0812', 'text0813', 'text0814', 'text0815', 'text0816', 'text0817', 'text0818', 'text0819', 'text0820', 'text0821', 'text0822', 'text0823', 'text0824', 'text0825', 'text0826', 'text0827', 'text0828', 'text0829', 'text0830', 'text0831', 'text0832', 'text0833', 'text0834', 'text0835', 'text0836', 'text0837', 'text0838', 'text0839', 'text0840', 'text0841', 'text0842', 'text0843', 'text0844', 'text0845', 'text0846', 'text0847', 'text0848', 'text0849', 'text0850', 'text0851', 'text0852', 'text0853', 'text0854', 'text0855', 'text0856', 'text0857', 'text0858', 'text0859', 'text0860', 'text0861', 'text0862', 'text0863', 'text0864', 'text0865', 'text0866', 'text0867', 'text0868', 'text0869', 'text0870', 'text0871', 'text0872', 'text0873', 'text0874', 'text0875', 'text0876', 'text0877', 'text0878', 'text0879', 'text0880', 'text0881', 'text0882', 'text0883', 'text0884', 'text0885', 'text0886', 'text0887', 'text0888', 'text0889', 'text0890', 'text0891', 'text0892', 'text0893', 'text0894', 'text0895', 'text0896', 'text0897', 'text0898', 'text0899', 'text0900', 'text0901', 'text0902', 'text0903', 'text0904', 'text0905'] - len(nested_list)=226\n",
"nested_list4=['text0906', 'text0907', 'text0908', 'text0909', 'text0910', 'text0911', 'text0912', 'text0913', 'text0914', 'text0915', 'text0916', 'text0917', 'text0918', 'text0919', 'text0920', 'text0921', 'text0922', 'text0923', 'text0924', 'text0925', 'text0926', 'text0927', 'text0928', 'text0929', 'text0930', 'text0931', 'text0932', 'text0933', 'text0934', 'text0935', 'text0936', 'text0937', 'text0938', 'text0939', 'text0940', 'text0941', 'text0942', 'text0943', 'text0944', 'text0945', 'text0946', 'text0947', 'text0948', 'text0949', 'text0950', 'text0951', 'text0952', 'text0953', 'text0954', 'text0955', 'text0956', 'text0957', 'text0958', 'text0959', 'text0960', 'text0961', 'text0962', 'text0963', 'text0964', 'text0965', 'text0966', 'text0967', 'text0968', 'text0969', 'text0970', 'text0971', 'text0972', 'text0973', 'text0974', 'text0975', 'text0976', 'text0977', 'text0978', 'text0979', 'text0980', 'text0981', 'text0982', 'text0983', 'text0984', 'text0985', 'text0986', 'text0987', 'text0988', 'text0989', 'text0990', 'text0991', 'text0992', 'text0993', 'text0994', 'text0995', 'text0996', 'text0997', 'text0998', 'text0999', 'text1000', 'text1001', 'text1002', 'text1003', 'text1004', 'text1005', 'text1006', 'text1007', 'text1008', 'text1009', 'text1010', 'text1011', 'text1012', 'text1013', 'text1014', 'text1015', 'text1016', 'text1017', 'text1018', 'text1019', 'text1020', 'text1021', 'text1022', 'text1023', 'text1024', 'text1025', 'text1026', 'text1027', 'text1028', 'text1029', 'text1030', 'text1031', 'text1032', 'text1033', 'text1034', 'text1035', 'text1036', 'text1037', 'text1038', 'text1039', 'text1040', 'text1041', 'text1042', 'text1043', 'text1044', 'text1045', 'text1046', 'text1047', 'text1048', 'text1049', 'text1050', 'text1051', 'text1052', 'text1053', 'text1054', 'text1055', 'text1056', 'text1057', 'text1058', 'text1059', 'text1060', 'text1061', 'text1062', 'text1063', 'text1064', 'text1065', 'text1066', 'text1067', 'text1068', 'text1069', 'text1070', 'text1071', 'text1072', 'text1073', 'text1074', 'text1075', 'text1076', 'text1077', 'text1078', 'text1079', 'text1080', 'text1081', 'text1082', 'text1083', 'text1084', 'text1085', 'text1086', 'text1087', 'text1088', 'text1089', 'text1090', 'text1091', 'text1092', 'text1093', 'text1094', 'text1095', 'text1096', 'text1097', 'text1098', 'text1099', 'text1100', 'text1101', 'text1102', 'text1103', 'text1104', 'text1105', 'text1106', 'text1107', 'text1108', 'text1109', 'text1110', 'text1111', 'text1112', 'text1113', 'text1114', 'text1115', 'text1116', 'text1117', 'text1118', 'text1119', 'text1120', 'text1121', 'text1122', 'text1123', 'text1124', 'text1125', 'text1126', 'text1127', 'text1128', 'text1129', 'text1130', 'text1131'] - len(nested_list)=226\n"
]
}
],
"source": [
"# Print some info about the output\n",
"for idx,nested_list in enumerate(out_list):\n",
" print(f\"nested_list{idx}={nested_list} - {len(nested_list)=}\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "738eff7a-6948-4cc3-9729-e72268822f71",
"metadata": {},
"outputs": [],
"source": [
"# Original splitter code without semaphore\n",
"list_of_elements = DEBUG_INPUT_LIST\n",
"list_of_lists = []\n",
"for elem in list_of_elements:\n",
" # Note by B. Wijers, watch out as list type is being overwritten in the next line\n",
" list = [elem]\n",
" list_of_lists.append(list)\n",
"# Write list"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "cddbf4cc-3379-46de-91d8-546ea117dac8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"list_of_lists=[['text0000'], ['text0001'], ['text0002'], ['text0003'], ['text0004'], ['text0005'], ['text0006'], ['text0007'], ['text0008'], ['text0009'], ['text0010'], ['text0011'], ['text0012'], ['text0013'], ['text0014'], ['text0015'], ['text0016'], ['text0017'], ['text0018'], ['text0019'], ['text0020'], ['text0021'], ['text0022'], ['text0023'], ['text0024'], ['text0025'], ['text0026'], ['text0027'], ['text0028'], ['text0029'], ['text0030'], ['text0031'], ['text0032'], ['text0033'], ['text0034'], ['text0035'], ['text0036'], ['text0037'], ['text0038'], ['text0039'], ['text0040'], ['text0041'], ['text0042'], ['text0043'], ['text0044'], ['text0045'], ['text0046'], ['text0047'], ['text0048'], ['text0049'], ['text0050'], ['text0051'], ['text0052'], ['text0053'], ['text0054'], ['text0055'], ['text0056'], ['text0057'], ['text0058'], ['text0059'], ['text0060'], ['text0061'], ['text0062'], ['text0063'], ['text0064'], ['text0065'], ['text0066'], ['text0067'], ['text0068'], ['text0069'], ['text0070'], ['text0071'], ['text0072'], ['text0073'], ['text0074'], ['text0075'], ['text0076'], ['text0077'], ['text0078'], ['text0079'], ['text0080'], ['text0081'], ['text0082'], ['text0083'], ['text0084'], ['text0085'], ['text0086'], ['text0087'], ['text0088'], ['text0089'], ['text0090'], ['text0091'], ['text0092'], ['text0093'], ['text0094'], ['text0095'], ['text0096'], ['text0097'], ['text0098'], ['text0099'], ['text0100'], ['text0101'], ['text0102'], ['text0103'], ['text0104'], ['text0105'], ['text0106'], ['text0107'], ['text0108'], ['text0109'], ['text0110'], ['text0111'], ['text0112'], ['text0113'], ['text0114'], ['text0115'], ['text0116'], ['text0117'], ['text0118'], ['text0119'], ['text0120'], ['text0121'], ['text0122'], ['text0123'], ['text0124'], ['text0125'], ['text0126'], ['text0127'], ['text0128'], ['text0129'], ['text0130'], ['text0131'], ['text0132'], ['text0133'], ['text0134'], ['text0135'], ['text0136'], ['text0137'], ['text0138'], ['text0139'], ['text0140'], ['text0141'], ['text0142'], ['text0143'], ['text0144'], ['text0145'], ['text0146'], ['text0147'], ['text0148'], ['text0149'], ['text0150'], ['text0151'], ['text0152'], ['text0153'], ['text0154'], ['text0155'], ['text0156'], ['text0157'], ['text0158'], ['text0159'], ['text0160'], ['text0161'], ['text0162'], ['text0163'], ['text0164'], ['text0165'], ['text0166'], ['text0167'], ['text0168'], ['text0169'], ['text0170'], ['text0171'], ['text0172'], ['text0173'], ['text0174'], ['text0175'], ['text0176'], ['text0177'], ['text0178'], ['text0179'], ['text0180'], ['text0181'], ['text0182'], ['text0183'], ['text0184'], ['text0185'], ['text0186'], ['text0187'], ['text0188'], ['text0189'], ['text0190'], ['text0191'], ['text0192'], ['text0193'], ['text0194'], ['text0195'], ['text0196'], ['text0197'], ['text0198'], ['text0199'], ['text0200'], ['text0201'], ['text0202'], ['text0203'], ['text0204'], ['text0205'], ['text0206'], ['text0207'], ['text0208'], ['text0209'], ['text0210'], ['text0211'], ['text0212'], ['text0213'], ['text0214'], ['text0215'], ['text0216'], ['text0217'], ['text0218'], ['text0219'], ['text0220'], ['text0221'], ['text0222'], ['text0223'], ['text0224'], ['text0225'], ['text0226'], ['text0227'], ['text0228'], ['text0229'], ['text0230'], ['text0231'], ['text0232'], ['text0233'], ['text0234'], ['text0235'], ['text0236'], ['text0237'], ['text0238'], ['text0239'], ['text0240'], ['text0241'], ['text0242'], ['text0243'], ['text0244'], ['text0245'], ['text0246'], ['text0247'], ['text0248'], ['text0249'], ['text0250'], ['text0251'], ['text0252'], ['text0253'], ['text0254'], ['text0255'], ['text0256'], ['text0257'], ['text0258'], ['text0259'], ['text0260'], ['text0261'], ['text0262'], ['text0263'], ['text0264'], ['text0265'], ['text0266'], ['text0267'], ['text0268'], ['text0269'], ['text0270'], ['text0271'], ['text0272'], ['text0273'], ['text0274'], ['text0275'], ['text0276'], ['text0277'], ['text0278'], ['text0279'], ['text0280'], ['text0281'], ['text0282'], ['text0283'], ['text0284'], ['text0285'], ['text0286'], ['text0287'], ['text0288'], ['text0289'], ['text0290'], ['text0291'], ['text0292'], ['text0293'], ['text0294'], ['text0295'], ['text0296'], ['text0297'], ['text0298'], ['text0299'], ['text0300'], ['text0301'], ['text0302'], ['text0303'], ['text0304'], ['text0305'], ['text0306'], ['text0307'], ['text0308'], ['text0309'], ['text0310'], ['text0311'], ['text0312'], ['text0313'], ['text0314'], ['text0315'], ['text0316'], ['text0317'], ['text0318'], ['text0319'], ['text0320'], ['text0321'], ['text0322'], ['text0323'], ['text0324'], ['text0325'], ['text0326'], ['text0327'], ['text0328'], ['text0329'], ['text0330'], ['text0331'], ['text0332'], ['text0333'], ['text0334'], ['text0335'], ['text0336'], ['text0337'], ['text0338'], ['text0339'], ['text0340'], ['text0341'], ['text0342'], ['text0343'], ['text0344'], ['text0345'], ['text0346'], ['text0347'], ['text0348'], ['text0349'], ['text0350'], ['text0351'], ['text0352'], ['text0353'], ['text0354'], ['text0355'], ['text0356'], ['text0357'], ['text0358'], ['text0359'], ['text0360'], ['text0361'], ['text0362'], ['text0363'], ['text0364'], ['text0365'], ['text0366'], ['text0367'], ['text0368'], ['text0369'], ['text0370'], ['text0371'], ['text0372'], ['text0373'], ['text0374'], ['text0375'], ['text0376'], ['text0377'], ['text0378'], ['text0379'], ['text0380'], ['text0381'], ['text0382'], ['text0383'], ['text0384'], ['text0385'], ['text0386'], ['text0387'], ['text0388'], ['text0389'], ['text0390'], ['text0391'], ['text0392'], ['text0393'], ['text0394'], ['text0395'], ['text0396'], ['text0397'], ['text0398'], ['text0399'], ['text0400'], ['text0401'], ['text0402'], ['text0403'], ['text0404'], ['text0405'], ['text0406'], ['text0407'], ['text0408'], ['text0409'], ['text0410'], ['text0411'], ['text0412'], ['text0413'], ['text0414'], ['text0415'], ['text0416'], ['text0417'], ['text0418'], ['text0419'], ['text0420'], ['text0421'], ['text0422'], ['text0423'], ['text0424'], ['text0425'], ['text0426'], ['text0427'], ['text0428'], ['text0429'], ['text0430'], ['text0431'], ['text0432'], ['text0433'], ['text0434'], ['text0435'], ['text0436'], ['text0437'], ['text0438'], ['text0439'], ['text0440'], ['text0441'], ['text0442'], ['text0443'], ['text0444'], ['text0445'], ['text0446'], ['text0447'], ['text0448'], ['text0449'], ['text0450'], ['text0451'], ['text0452'], ['text0453'], ['text0454'], ['text0455'], ['text0456'], ['text0457'], ['text0458'], ['text0459'], ['text0460'], ['text0461'], ['text0462'], ['text0463'], ['text0464'], ['text0465'], ['text0466'], ['text0467'], ['text0468'], ['text0469'], ['text0470'], ['text0471'], ['text0472'], ['text0473'], ['text0474'], ['text0475'], ['text0476'], ['text0477'], ['text0478'], ['text0479'], ['text0480'], ['text0481'], ['text0482'], ['text0483'], ['text0484'], ['text0485'], ['text0486'], ['text0487'], ['text0488'], ['text0489'], ['text0490'], ['text0491'], ['text0492'], ['text0493'], ['text0494'], ['text0495'], ['text0496'], ['text0497'], ['text0498'], ['text0499'], ['text0500'], ['text0501'], ['text0502'], ['text0503'], ['text0504'], ['text0505'], ['text0506'], ['text0507'], ['text0508'], ['text0509'], ['text0510'], ['text0511'], ['text0512'], ['text0513'], ['text0514'], ['text0515'], ['text0516'], ['text0517'], ['text0518'], ['text0519'], ['text0520'], ['text0521'], ['text0522'], ['text0523'], ['text0524'], ['text0525'], ['text0526'], ['text0527'], ['text0528'], ['text0529'], ['text0530'], ['text0531'], ['text0532'], ['text0533'], ['text0534'], ['text0535'], ['text0536'], ['text0537'], ['text0538'], ['text0539'], ['text0540'], ['text0541'], ['text0542'], ['text0543'], ['text0544'], ['text0545'], ['text0546'], ['text0547'], ['text0548'], ['text0549'], ['text0550'], ['text0551'], ['text0552'], ['text0553'], ['text0554'], ['text0555'], ['text0556'], ['text0557'], ['text0558'], ['text0559'], ['text0560'], ['text0561'], ['text0562'], ['text0563'], ['text0564'], ['text0565'], ['text0566'], ['text0567'], ['text0568'], ['text0569'], ['text0570'], ['text0571'], ['text0572'], ['text0573'], ['text0574'], ['text0575'], ['text0576'], ['text0577'], ['text0578'], ['text0579'], ['text0580'], ['text0581'], ['text0582'], ['text0583'], ['text0584'], ['text0585'], ['text0586'], ['text0587'], ['text0588'], ['text0589'], ['text0590'], ['text0591'], ['text0592'], ['text0593'], ['text0594'], ['text0595'], ['text0596'], ['text0597'], ['text0598'], ['text0599'], ['text0600'], ['text0601'], ['text0602'], ['text0603'], ['text0604'], ['text0605'], ['text0606'], ['text0607'], ['text0608'], ['text0609'], ['text0610'], ['text0611'], ['text0612'], ['text0613'], ['text0614'], ['text0615'], ['text0616'], ['text0617'], ['text0618'], ['text0619'], ['text0620'], ['text0621'], ['text0622'], ['text0623'], ['text0624'], ['text0625'], ['text0626'], ['text0627'], ['text0628'], ['text0629'], ['text0630'], ['text0631'], ['text0632'], ['text0633'], ['text0634'], ['text0635'], ['text0636'], ['text0637'], ['text0638'], ['text0639'], ['text0640'], ['text0641'], ['text0642'], ['text0643'], ['text0644'], ['text0645'], ['text0646'], ['text0647'], ['text0648'], ['text0649'], ['text0650'], ['text0651'], ['text0652'], ['text0653'], ['text0654'], ['text0655'], ['text0656'], ['text0657'], ['text0658'], ['text0659'], ['text0660'], ['text0661'], ['text0662'], ['text0663'], ['text0664'], ['text0665'], ['text0666'], ['text0667'], ['text0668'], ['text0669'], ['text0670'], ['text0671'], ['text0672'], ['text0673'], ['text0674'], ['text0675'], ['text0676'], ['text0677'], ['text0678'], ['text0679'], ['text0680'], ['text0681'], ['text0682'], ['text0683'], ['text0684'], ['text0685'], ['text0686'], ['text0687'], ['text0688'], ['text0689'], ['text0690'], ['text0691'], ['text0692'], ['text0693'], ['text0694'], ['text0695'], ['text0696'], ['text0697'], ['text0698'], ['text0699'], ['text0700'], ['text0701'], ['text0702'], ['text0703'], ['text0704'], ['text0705'], ['text0706'], ['text0707'], ['text0708'], ['text0709'], ['text0710'], ['text0711'], ['text0712'], ['text0713'], ['text0714'], ['text0715'], ['text0716'], ['text0717'], ['text0718'], ['text0719'], ['text0720'], ['text0721'], ['text0722'], ['text0723'], ['text0724'], ['text0725'], ['text0726'], ['text0727'], ['text0728'], ['text0729'], ['text0730'], ['text0731'], ['text0732'], ['text0733'], ['text0734'], ['text0735'], ['text0736'], ['text0737'], ['text0738'], ['text0739'], ['text0740'], ['text0741'], ['text0742'], ['text0743'], ['text0744'], ['text0745'], ['text0746'], ['text0747'], ['text0748'], ['text0749'], ['text0750'], ['text0751'], ['text0752'], ['text0753'], ['text0754'], ['text0755'], ['text0756'], ['text0757'], ['text0758'], ['text0759'], ['text0760'], ['text0761'], ['text0762'], ['text0763'], ['text0764'], ['text0765'], ['text0766'], ['text0767'], ['text0768'], ['text0769'], ['text0770'], ['text0771'], ['text0772'], ['text0773'], ['text0774'], ['text0775'], ['text0776'], ['text0777'], ['text0778'], ['text0779'], ['text0780'], ['text0781'], ['text0782'], ['text0783'], ['text0784'], ['text0785'], ['text0786'], ['text0787'], ['text0788'], ['text0789'], ['text0790'], ['text0791'], ['text0792'], ['text0793'], ['text0794'], ['text0795'], ['text0796'], ['text0797'], ['text0798'], ['text0799'], ['text0800'], ['text0801'], ['text0802'], ['text0803'], ['text0804'], ['text0805'], ['text0806'], ['text0807'], ['text0808'], ['text0809'], ['text0810'], ['text0811'], ['text0812'], ['text0813'], ['text0814'], ['text0815'], ['text0816'], ['text0817'], ['text0818'], ['text0819'], ['text0820'], ['text0821'], ['text0822'], ['text0823'], ['text0824'], ['text0825'], ['text0826'], ['text0827'], ['text0828'], ['text0829'], ['text0830'], ['text0831'], ['text0832'], ['text0833'], ['text0834'], ['text0835'], ['text0836'], ['text0837'], ['text0838'], ['text0839'], ['text0840'], ['text0841'], ['text0842'], ['text0843'], ['text0844'], ['text0845'], ['text0846'], ['text0847'], ['text0848'], ['text0849'], ['text0850'], ['text0851'], ['text0852'], ['text0853'], ['text0854'], ['text0855'], ['text0856'], ['text0857'], ['text0858'], ['text0859'], ['text0860'], ['text0861'], ['text0862'], ['text0863'], ['text0864'], ['text0865'], ['text0866'], ['text0867'], ['text0868'], ['text0869'], ['text0870'], ['text0871'], ['text0872'], ['text0873'], ['text0874'], ['text0875'], ['text0876'], ['text0877'], ['text0878'], ['text0879'], ['text0880'], ['text0881'], ['text0882'], ['text0883'], ['text0884'], ['text0885'], ['text0886'], ['text0887'], ['text0888'], ['text0889'], ['text0890'], ['text0891'], ['text0892'], ['text0893'], ['text0894'], ['text0895'], ['text0896'], ['text0897'], ['text0898'], ['text0899'], ['text0900'], ['text0901'], ['text0902'], ['text0903'], ['text0904'], ['text0905'], ['text0906'], ['text0907'], ['text0908'], ['text0909'], ['text0910'], ['text0911'], ['text0912'], ['text0913'], ['text0914'], ['text0915'], ['text0916'], ['text0917'], ['text0918'], ['text0919'], ['text0920'], ['text0921'], ['text0922'], ['text0923'], ['text0924'], ['text0925'], ['text0926'], ['text0927'], ['text0928'], ['text0929'], ['text0930'], ['text0931'], ['text0932'], ['text0933'], ['text0934'], ['text0935'], ['text0936'], ['text0937'], ['text0938'], ['text0939'], ['text0940'], ['text0941'], ['text0942'], ['text0943'], ['text0944'], ['text0945'], ['text0946'], ['text0947'], ['text0948'], ['text0949'], ['text0950'], ['text0951'], ['text0952'], ['text0953'], ['text0954'], ['text0955'], ['text0956'], ['text0957'], ['text0958'], ['text0959'], ['text0960'], ['text0961'], ['text0962'], ['text0963'], ['text0964'], ['text0965'], ['text0966'], ['text0967'], ['text0968'], ['text0969'], ['text0970'], ['text0971'], ['text0972'], ['text0973'], ['text0974'], ['text0975'], ['text0976'], ['text0977'], ['text0978'], ['text0979'], ['text0980'], ['text0981'], ['text0982'], ['text0983'], ['text0984'], ['text0985'], ['text0986'], ['text0987'], ['text0988'], ['text0989'], ['text0990'], ['text0991'], ['text0992'], ['text0993'], ['text0994'], ['text0995'], ['text0996'], ['text0997'], ['text0998'], ['text0999'], ['text1000'], ['text1001'], ['text1002'], ['text1003'], ['text1004'], ['text1005'], ['text1006'], ['text1007'], ['text1008'], ['text1009'], ['text1010'], ['text1011'], ['text1012'], ['text1013'], ['text1014'], ['text1015'], ['text1016'], ['text1017'], ['text1018'], ['text1019'], ['text1020'], ['text1021'], ['text1022'], ['text1023'], ['text1024'], ['text1025'], ['text1026'], ['text1027'], ['text1028'], ['text1029'], ['text1030'], ['text1031'], ['text1032'], ['text1033'], ['text1034'], ['text1035'], ['text1036'], ['text1037'], ['text1038'], ['text1039'], ['text1040'], ['text1041'], ['text1042'], ['text1043'], ['text1044'], ['text1045'], ['text1046'], ['text1047'], ['text1048'], ['text1049'], ['text1050'], ['text1051'], ['text1052'], ['text1053'], ['text1054'], ['text1055'], ['text1056'], ['text1057'], ['text1058'], ['text1059'], ['text1060'], ['text1061'], ['text1062'], ['text1063'], ['text1064'], ['text1065'], ['text1066'], ['text1067'], ['text1068'], ['text1069'], ['text1070'], ['text1071'], ['text1072'], ['text1073'], ['text1074'], ['text1075'], ['text1076'], ['text1077'], ['text1078'], ['text1079'], ['text1080'], ['text1081'], ['text1082'], ['text1083'], ['text1084'], ['text1085'], ['text1086'], ['text1087'], ['text1088'], ['text1089'], ['text1090'], ['text1091'], ['text1092'], ['text1093'], ['text1094'], ['text1095'], ['text1096'], ['text1097'], ['text1098'], ['text1099'], ['text1100'], ['text1101'], ['text1102'], ['text1103'], ['text1104'], ['text1105'], ['text1106'], ['text1107'], ['text1108'], ['text1109'], ['text1110'], ['text1111'], ['text1112'], ['text1113'], ['text1114'], ['text1115'], ['text1116'], ['text1117'], ['text1118'], ['text1119'], ['text1120'], ['text1121'], ['text1122'], ['text1123'], ['text1124'], ['text1125'], ['text1126'], ['text1127'], ['text1128'], ['text1129'], ['text1130'], ['text1131']]\n"
]
}
],
"source": [
"print(f\"{list_of_lists=}\")"
]
},
{
"cell_type": "code",
"execution_count": 71,
"id": "6e4bf58d-6c3d-44d7-82f3-c325096dc66a",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ceildivision=21\n",
"floordivision=20\n"
]
}
],
"source": [
"# bonus from stackoverflow regarding floor // and ceildivision (non existant)\n",
"# Someone posted this sollution which is branded the upsidedown floordivision\n",
"def ceildiv(a, b):\n",
" return -(a // -b)\n",
"\n",
"a = 101\n",
"b = 5\n",
"ceildivision = ceildiv(a,b)\n",
"print(f\"{ceildivision=}\")\n",
"floordivision = a // b\n",
"print(f\"{floordivision=}\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:root]",
"language": "python",
"name": "conda-root-py"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment