|
325 | 325 | ],
|
326 | 326 | "tags": ["python", "list", "duplicates", "utility"],
|
327 | 327 | "author": "dostonnabotov"
|
| 328 | + }, |
| 329 | + { |
| 330 | + "title": "Find Duplicates in a List", |
| 331 | + "description": "Identifies duplicate elements in a list.", |
| 332 | + "code": [ |
| 333 | + "def find_duplicates(lst):", |
| 334 | + " seen = set()", |
| 335 | + " duplicates = set()", |
| 336 | + " for item in lst:", |
| 337 | + " if item in seen:", |
| 338 | + " duplicates.add(item)", |
| 339 | + " else:", |
| 340 | + " seen.add(item)", |
| 341 | + " return list(duplicates)", |
| 342 | + "", |
| 343 | + "# Usage:", |
| 344 | + "data = [1, 2, 3, 2, 4, 5, 1]", |
| 345 | + "print(find_duplicates(data)) # Output: [1, 2]" |
| 346 | + ], |
| 347 | + "tags": ["python", "list", "duplicates", "utility"], |
| 348 | + "author": "axorax" |
| 349 | + }, |
| 350 | + { |
| 351 | + "title": "Partition List", |
| 352 | + "description": "Partitions a list into sublists of a given size.", |
| 353 | + "code": [ |
| 354 | + "def partition_list(lst, size):", |
| 355 | + " for i in range(0, len(lst), size):", |
| 356 | + " yield lst[i:i + size]", |
| 357 | + "", |
| 358 | + "# Usage:", |
| 359 | + "data = [1, 2, 3, 4, 5, 6, 7]", |
| 360 | + "partitions = list(partition_list(data, 3))", |
| 361 | + "print(partitions) # Output: [[1, 2, 3], [4, 5, 6], [7]]" |
| 362 | + ], |
| 363 | + "tags": ["python", "list", "partition", "utility"], |
| 364 | + "author": "axorax" |
| 365 | + }, |
| 366 | + { |
| 367 | + "title": "Find Intersection of Two Lists", |
| 368 | + "description": "Finds the common elements between two lists.", |
| 369 | + "code": [ |
| 370 | + "def list_intersection(lst1, lst2):", |
| 371 | + " return [item for item in lst1 if item in lst2]", |
| 372 | + "", |
| 373 | + "# Usage:", |
| 374 | + "list_a = [1, 2, 3, 4]", |
| 375 | + "list_b = [3, 4, 5, 6]", |
| 376 | + "print(list_intersection(list_a, list_b)) # Output: [3, 4]" |
| 377 | + ], |
| 378 | + "tags": ["python", "list", "intersection", "utility"], |
| 379 | + "author": "axorax" |
| 380 | + }, |
| 381 | + { |
| 382 | + "title": "Find Maximum Difference in List", |
| 383 | + "description": "Finds the maximum difference between any two elements in a list.", |
| 384 | + "code": [ |
| 385 | + "def max_difference(lst):", |
| 386 | + " if not lst or len(lst) < 2:", |
| 387 | + " return 0", |
| 388 | + " return max(lst) - min(lst)", |
| 389 | + "", |
| 390 | + "# Usage:", |
| 391 | + "data = [10, 3, 5, 20, 7]", |
| 392 | + "print(max_difference(data)) # Output: 17" |
| 393 | + ], |
| 394 | + "tags": ["python", "list", "difference", "utility"], |
| 395 | + "author": "axorax" |
328 | 396 | }
|
329 | 397 | ]
|
330 | 398 | },
|
|
655 | 723 | ],
|
656 | 724 | "tags": ["python", "random", "string", "utility"],
|
657 | 725 | "author": "dostonnabotov"
|
| 726 | + }, |
| 727 | + { |
| 728 | + "title": "Convert Bytes to Human-Readable Format", |
| 729 | + "description": "Converts a size in bytes to a human-readable format.", |
| 730 | + "code": [ |
| 731 | + "def bytes_to_human_readable(num):", |
| 732 | + " for unit in ['B', 'KB', 'MB', 'GB', 'TB', 'PB']:", |
| 733 | + " if num < 1024:", |
| 734 | + " return f\"{num:.2f} {unit}\"", |
| 735 | + " num /= 1024", |
| 736 | + "", |
| 737 | + "# Usage:", |
| 738 | + "print(bytes_to_human_readable(123456789)) # Output: '117.74 MB'" |
| 739 | + ], |
| 740 | + "tags": ["python", "bytes", "format", "utility"], |
| 741 | + "author": "axorax" |
658 | 742 | }
|
659 | 743 | ]
|
660 | 744 | },
|
|
904 | 988 | ],
|
905 | 989 | "tags": ["python", "error-handling", "division", "utility"],
|
906 | 990 | "author": "e3nviction"
|
| 991 | + }, |
| 992 | + { |
| 993 | + "title": "Retry Function Execution on Exception", |
| 994 | + "description": "Retries a function execution a specified number of times if it raises an exception.", |
| 995 | + "code": [ |
| 996 | + "import time", |
| 997 | + "", |
| 998 | + "def retry(func, retries=3, delay=1):", |
| 999 | + " for attempt in range(retries):", |
| 1000 | + " try:", |
| 1001 | + " return func()", |
| 1002 | + " except Exception as e:", |
| 1003 | + " print(f\"Attempt {attempt + 1} failed: {e}\")", |
| 1004 | + " time.sleep(delay)", |
| 1005 | + " raise Exception(\"All retry attempts failed\")", |
| 1006 | + "", |
| 1007 | + "# Usage:", |
| 1008 | + "def unstable_function():", |
| 1009 | + " raise ValueError(\"Simulated failure\")", |
| 1010 | + "", |
| 1011 | + "# Retry 3 times with 2 seconds delay:", |
| 1012 | + "try:", |
| 1013 | + " retry(unstable_function, retries=3, delay=2)", |
| 1014 | + "except Exception as e:", |
| 1015 | + " print(e) # Output: All retry attempts failed" |
| 1016 | + ], |
| 1017 | + "tags": ["python", "error-handling", "retry", "utility"], |
| 1018 | + "author": "axorax" |
| 1019 | + }, |
| 1020 | + { |
| 1021 | + "title": "Validate Input with Exception Handling", |
| 1022 | + "description": "Validates user input and handles invalid input gracefully.", |
| 1023 | + "code": [ |
| 1024 | + "def validate_positive_integer(input_value):", |
| 1025 | + " try:", |
| 1026 | + " value = int(input_value)", |
| 1027 | + " if value < 0:", |
| 1028 | + " raise ValueError(\"The number must be positive\")", |
| 1029 | + " return value", |
| 1030 | + " except ValueError as e:", |
| 1031 | + " return f\"Invalid input: {e}\"", |
| 1032 | + "", |
| 1033 | + "# Usage:", |
| 1034 | + "print(validate_positive_integer('10')) # Output: 10", |
| 1035 | + "print(validate_positive_integer('-5')) # Output: Invalid input: The number must be positive", |
| 1036 | + "print(validate_positive_integer('abc')) # Output: Invalid input: invalid literal for int() with base 10: 'abc'" |
| 1037 | + ], |
| 1038 | + "tags": ["python", "error-handling", "validation", "utility"], |
| 1039 | + "author": "axorax" |
| 1040 | + }, |
| 1041 | + { |
| 1042 | + "title": "Handle File Not Found Error", |
| 1043 | + "description": "Attempts to open a file and handles the case where the file does not exist.", |
| 1044 | + "code": [ |
| 1045 | + "def read_file_safe(filepath):", |
| 1046 | + " try:", |
| 1047 | + " with open(filepath, 'r') as file:", |
| 1048 | + " return file.read()", |
| 1049 | + " except FileNotFoundError:", |
| 1050 | + " return \"File not found!\"", |
| 1051 | + "", |
| 1052 | + "# Usage:", |
| 1053 | + "print(read_file_safe('nonexistent.txt')) # Output: 'File not found!'" |
| 1054 | + ], |
| 1055 | + "tags": ["python", "error-handling", "file", "utility"], |
| 1056 | + "author": "axorax" |
907 | 1057 | }
|
908 | 1058 | ]
|
909 | 1059 | },
|
|
942 | 1092 | ],
|
943 | 1093 | "tags": ["python", "datetime", "utility"],
|
944 | 1094 | "author": "e3nviction"
|
| 1095 | + }, |
| 1096 | + { |
| 1097 | + "title": "Generate Date Range List", |
| 1098 | + "description": "Generates a list of dates between two given dates.", |
| 1099 | + "code": [ |
| 1100 | + "from datetime import datetime, timedelta", |
| 1101 | + "", |
| 1102 | + "def generate_date_range(start_date, end_date):", |
| 1103 | + " if start_date > end_date:", |
| 1104 | + " raise ValueError(\"start_date must be before end_date\")", |
| 1105 | + "", |
| 1106 | + " current_date = start_date", |
| 1107 | + " date_list = []", |
| 1108 | + " while current_date <= end_date:", |
| 1109 | + " date_list.append(current_date)", |
| 1110 | + " current_date += timedelta(days=1)", |
| 1111 | + "", |
| 1112 | + " return date_list", |
| 1113 | + "", |
| 1114 | + "# Usage:", |
| 1115 | + "start = datetime(2023, 1, 1)", |
| 1116 | + "end = datetime(2023, 1, 5)", |
| 1117 | + "dates = generate_date_range(start, end)", |
| 1118 | + "for d in dates:", |
| 1119 | + " print(d.strftime('%Y-%m-%d'))", |
| 1120 | + "# Output: '2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05'" |
| 1121 | + ], |
| 1122 | + "tags": ["python", "datetime", "range", "utility"], |
| 1123 | + "author": "axorax" |
| 1124 | + }, |
| 1125 | + { |
| 1126 | + "title": "Determine Day of the Week", |
| 1127 | + "description": "Calculates the day of the week for a given date.", |
| 1128 | + "code": [ |
| 1129 | + "from datetime import datetime", |
| 1130 | + "", |
| 1131 | + "def get_day_of_week(date):", |
| 1132 | + " days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']", |
| 1133 | + " try:", |
| 1134 | + " return days[date.weekday()]", |
| 1135 | + " except IndexError:", |
| 1136 | + " raise ValueError(\"Invalid date\")", |
| 1137 | + "", |
| 1138 | + "# Usage:", |
| 1139 | + "date = datetime(2023, 1, 1)", |
| 1140 | + "day = get_day_of_week(date)", |
| 1141 | + "print(day) # Output: 'Sunday'" |
| 1142 | + ], |
| 1143 | + "tags": ["python", "datetime", "weekday", "utility"], |
| 1144 | + "author": "axorax" |
| 1145 | + }, |
| 1146 | + { |
| 1147 | + "title": "Check if Date is a Weekend", |
| 1148 | + "description": "Checks whether a given date falls on a weekend.", |
| 1149 | + "code": [ |
| 1150 | + "from datetime import datetime", |
| 1151 | + "", |
| 1152 | + "def is_weekend(date):", |
| 1153 | + " try:", |
| 1154 | + " return date.weekday() >= 5 # Saturday = 5, Sunday = 6", |
| 1155 | + " except AttributeError:", |
| 1156 | + " raise TypeError(\"Input must be a datetime object\")", |
| 1157 | + "", |
| 1158 | + "# Usage:", |
| 1159 | + "date = datetime(2023, 1, 1)", |
| 1160 | + "weekend = is_weekend(date)", |
| 1161 | + "print(weekend) # Output: True (Sunday)" |
| 1162 | + ], |
| 1163 | + "tags": ["python", "datetime", "weekend", "utility"], |
| 1164 | + "author": "axorax" |
| 1165 | + }, |
| 1166 | + { |
| 1167 | + "title": "Get Number of Days in a Month", |
| 1168 | + "description": "Determines the number of days in a specific month and year.", |
| 1169 | + "code": [ |
| 1170 | + "from calendar import monthrange", |
| 1171 | + "from datetime import datetime", |
| 1172 | + "", |
| 1173 | + "def get_days_in_month(year, month):", |
| 1174 | + " try:", |
| 1175 | + " return monthrange(year, month)[1]", |
| 1176 | + " except ValueError as e:", |
| 1177 | + " raise ValueError(f\"Invalid month or year: {e}\")", |
| 1178 | + "", |
| 1179 | + "# Usage:", |
| 1180 | + "days = get_days_in_month(2023, 2)", |
| 1181 | + "print(days) # Output: 28 (for non-leap year February)" |
| 1182 | + ], |
| 1183 | + "tags": ["python", "datetime", "calendar", "utility"], |
| 1184 | + "author": "axorax" |
945 | 1185 | }
|
946 | 1186 | ]
|
947 | 1187 | }
|
|
0 commit comments