Python Code Snippets

Browse Python snippets for data analysis, web apps, and automation.

def flatten(lst):
    result = []
    for i in lst:
        if isinstance(i, list):
            result.extend(flatten(i))
        else:
            result.append(i)
    return result

Flatten a list of arbitrarily nested lists into a flat list in python

This recursive function takes a list wit...
from datetime import datetime, date

default_format_to = "%Y-%m-%d" #ayou can change it to any format "%d-%m-%Y", "%m-%d-%Y"

def format_date(input_date, format_to = default_format_to):
    if isinstance(input_date, datetime):
        dt = input_date
    elif isinstance(input_date, date):
        dt = datetime.combine(input_date, datetime.min.time())
    elif isinstance(input_date, str):
        # Try multiple common date string formats
        for fmt in ("%Y-%m-%d", "%d-%m-%Y", "%m-%d-%Y", "%d/%m/%Y", "%m/%d/%Y"):
            try:
                dt = datetime.strptime(input_date, fmt)
                break
            except ValueError:
                continue
        else:
            raise ValueError(f"Unsupported date format: {input_date}")
    else:
        raise TypeError(f"Unsupported type: {type(input_date)}")
    
    return dt.strftime(format_to)


print(format_date("05-04-2022", default_format_to))         # 2022-04-05
print(format_date("2022-04-05"))                            # 2022-04-05
print(format_date(date(2022, 9, 19), default_format_to))    # 2022-09-19
print(format_date(datetime(2021, 4, 5)))                    # 2022-04-05

Format Date as YYYY-MM-DD in Python

Format a date object into any format def...